Я работаю в социальной сети, как программное обеспечение, где у меня есть база данных с человека таблицей:Является ли хранилище баз данных на основе тегов хорошей идеей?
Person
--------
id
firstname
lastname
mail
birthday
[etc.]
Теперь проблема заключается в том, что я хочу, чтобы пользователь мог добавить очень подробную информацию , Например, какие татуировки у человека есть, и где, и какой размер и так далее. С текущей раскладке базы данных я должен был бы добавить еще таблицу для татуировок:
Tattoo
--------
id
fk_person
size
position
[etc.]
Теперь tattoo
является не только новая таблица Я хотел бы добавить, есть и другие, для волос, пирсинг , музыка вкуса и так далее.
Так что теперь, чтобы добраться до вопроса: Не было бы хорошей идеей магазине все, что данные в одном Tag
таблице как это:
Tag
--------
id
tag_name
tag_value
Там я мог бы добавить такие данные:
1 | tattoo_size | large
2 | tattoo_size | medium
3 | tattoo_size | small
4 | firstname | Peter
5 | nickname | Pete
7 | birthday | 11.11.1999
Плюс n-to-n-table Person
до Tag
.
id
fk_person
fk_tag
С данными, как это:
1 | 25 | 1
2 | 25 | 4
3 | 23 | 1
Таким образом, не существует дублирования информации, если два человека имеют большую татуировку или ПгвЬЫат Питер, например, и люди могут иметь много татуировок, как они хотят.
Дополнительный бонус это, кажется, приносит что поиск будет легче: Вам просто нужно запустить SELECT
на Tag
столе с ключевым словом.
Я использую MySQL и PHP в случае, если это имеет значение.
Хорошая идея? Плохая идея? Получил лучшую идею?
Благодаря
Я добавил «Тег» на ваш вопрос. Ищите другие вопросы. Я устал проговариваться с EAV. –