Представьте, что вы планируете создать социальную сеть , работающую на GAE / Java , где каждый пользователь имеет набор свойств (например, возраст, текущий город, интересов).
Альтернатива 1 : классический подход - user_id и каждое свойство в виде «строки»
entity property_1 property_2 property_3
------ ---------- ---------- -----------------
bob missing NY [football, books]
tom 34 missing [books, horses]
Альтернатива 2 : entity-atributte-value (EAV)
entity attribute value
------ --------- -----
bob town NY
bob interests [football, books]
tom age 34
tom interests [books, horses]
Какие плюсы / минусы вы думаете у каждого варианта есть? Меня больше всего беспокоит:
Я думаю второй вариант более гибкий и, возможно, его проще реализовать, но я хотел бы знать, что думают другие опытные разработчики.
Спасибо.