Достаточно 3-х таблиц:
1) Таблица категорий
2) Таблица событий
3) Таблица связей с двумя столбцами - CATEGORY_ID, ITEM_ID
Выбрал категорию - выбрал все принадлежащие ей события. Выбрал событие - получил список категорий, к которым оно относится.
Если категории должны иметь древовидный вид, то возможны 2 варианта:
1) Каждая категория может иметь только одну родительскую категорию - тогда в таблицу категорий нужно добавить 1 поле "PARENT_ID", куда заносится ID родительской категории. Имеет недостаток - для выборки всего дерева нужно в цикле выполнять много запросов. Выбрать дерево одним запросом требует дополнительных столбцов.
2) Каждая категория может иметь несколько родительских категорий - тогда нужна ещё одна таблица связей для категорий (CATEGORY_ID, PARENT_ID или CATEGORY_ID, CHILD_ID). Построение дерева категорий - отдельный вопрос.
Ответов: 4629
Рейтинг: 749
|
|||
карма: 26 |
|
Редактировалось 1 раз(а), последний 2020-06-19 11:02:27