Feramon4ik
@Feramon4ik
Студент СПбГЭТУ("ЛЭТИ")

Как правильно составить связи для сущностей?

Всем привет. У меня есть вопрос. Может кто нибудь даст ответ. Например у меня есть несколько сущностей: баннеры, видео, тексты. Хочу прикрутить теги для этих сущностей, чтобы сделать фильтр. Насколько разумно делать теги общими для всех? То есть одна сущность "ТЕГ" на 3( баннеры, видео, тексты). Если например захочу еще как-то разделять теги по категориям: формат, язык. То есть введу поле type в сущность тегов. Вот пример:
0f908a4bd167485d849a6d800739ada3.png

Или все таки лучше вводить отдельные таблицы вида языки, форматы и фильтровать по ним. А теги будут общими без типов. Пример:
16518ac878b24797bf6bb8809f0fff5c.png
Если языков мало 5-10. Вообще тогда стоит вводить таблицу?) Что-то не могу нормально построить связи. Есть ли хорошие рекомендации по построению? Еще есть вариант отдельно вводить для каждой сущности свою "ТЕГ"
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 1
atlantech
@atlantech
Full Stack Software Developer
Новую сущность обычно вводят в том случае, если она потенциально содержит в себе первичный ключ. В вашем случае напрашивается сущность Language поскольку имя языка будет уникально (скорее всего в таблице languages у вас не будет две записи с именем ru или eng). Создав таблицу lanugages вы избавитесь от дублирования таблиц banner_languages и video_languages и сможете связывать её с любыми другими сущностями.

То же самое с тегами - нет смысла плодить одинаковые сущности. Сделайте одну сущность Tag и добавляйте связи с другими.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы