Привет всем! Разрабатываю схему БД и столкнулся с такой проблемой: не

знаю как лучше организовать структуру для категорий. Категория может иметь одну родительскую категорию. Следовательно категория может иметь множество дочерних категорий. Дерево, как есть.

Можно добавить в таблицу categories столбец parent_category_id. Таким образом восстанавливать дерево.

Можно создать отдельную таблицу parent_categories и вторую таблицу categories. Получится третья таблица, которая и будет показывать к какой родительской категории относятся обычные категории.

Я рассматривал два этих варианта, однако не знаю насколько они адекватны. Может ли кто-нибудь дать пару советов "как сделать лучше"?

5 ответов

14 просмотров

Мне кажется первый вариант весьма стандартный (category_id | parent_category_id)

буквально на одно сообщение выше ответ на подобный вопрос)

41444114d- Автор вопроса
Alex
буквально на одно сообщение выше ответ на подобный...

Не ожидал такого, даже не смотрел историю выше. Только вот мне кажется, что у подхода через две таблицы есть явные минусы, которые можно предположить прямо сейчас: необходимость создавать третью, связующую таблицу; более затратное чтение; нельзя из дочерней или родительской категорий сделать обычную обновлением данных; в принципе нет обычных категорий (не родительская и не дочерняя)

41444114d
Не ожидал такого, даже не смотрел историю выше. То...

там названы несколько алгоритмов для подобных структур мне например нравится nested sets за удобный поиск потомков, но вот вставлять данные очень затратно в нее

41444114d
Не ожидал такого, даже не смотрел историю выше. То...

не делай себе мозг, parent_id в таблице category и проблема решена, стандартная задача. Не разу не видел чтобы вообще по другому организовывали категории. И будет у тебя там древовидная структура. Не веришь, так возьми и создай таблицу с категориями и назначай одной несколько дочерних в parent_id а при условии выборки потом указывай это поле, ну это думаю и сам знаешь

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

Обсуждают сегодня

upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Может кто подсказать какие требования к изображениям для обучения Yolo v8? Как то разрешение, размер выделяемого обьекта в пикселях, оптимальное кол-во изображений. А то я пыт...
Владислав😎
16
Карта сайта