знаю как лучше организовать структуру для категорий. Категория может иметь одну родительскую категорию. Следовательно категория может иметь множество дочерних категорий. Дерево, как есть.
Можно добавить в таблицу categories столбец parent_category_id. Таким образом восстанавливать дерево.
Можно создать отдельную таблицу parent_categories и вторую таблицу categories. Получится третья таблица, которая и будет показывать к какой родительской категории относятся обычные категории.
Я рассматривал два этих варианта, однако не знаю насколько они адекватны. Может ли кто-нибудь дать пару советов "как сделать лучше"?
Мне кажется первый вариант весьма стандартный (category_id | parent_category_id)
буквально на одно сообщение выше ответ на подобный вопрос)
Не ожидал такого, даже не смотрел историю выше. Только вот мне кажется, что у подхода через две таблицы есть явные минусы, которые можно предположить прямо сейчас: необходимость создавать третью, связующую таблицу; более затратное чтение; нельзя из дочерней или родительской категорий сделать обычную обновлением данных; в принципе нет обычных категорий (не родительская и не дочерняя)
там названы несколько алгоритмов для подобных структур мне например нравится nested sets за удобный поиск потомков, но вот вставлять данные очень затратно в нее
не делай себе мозг, parent_id в таблице category и проблема решена, стандартная задача. Не разу не видел чтобы вообще по другому организовывали категории. И будет у тебя там древовидная структура. Не веришь, так возьми и создай таблицу с категориями и назначай одной несколько дочерних в parent_id а при условии выборки потом указывай это поле, ну это думаю и сам знаешь
Обсуждают сегодня