Есть простая задача на текущий момент, но нет времени на тесты для рационального выбора, по этому хотел бы послушать мнение тех у кого есть опыт создания подобного функционала.
Задача: Реализовать возможность добавление тэгов для любой сущности на сайте. Посты, страницы, галереи, и.т.д. с возможностью в далнейшем реализовать посик по тэгам любых сущностей и вывод найденых результатов.
Вопрос заключается в том как лучще организовать стурктуру БД.
1) Одна таблица:
Код: Выделить всё
id (ID тэга) | model_id (ID связаной модели) | model_class_id (ID класа модели) | name (Сам тэг)
Минусы: Тот же тэг может повторятся несколько раз, что не совсем правильно.
2) Две таблицы:
Код: Выделить всё
id (ID тэга) | name (Сам тэг)
tag_id (ID тэга) | model_id (ID связаной модели) | model_class_id (ID класа модели)
Минусы: 2 таблицы, и соответсвенно больше запросов, для простого выода, и того же посика по тэгам.
Что посоветуйте коллеги?