БД Схема проектирования Родитель Дети Внуки Дети - PullRequest
0 голосов
/ 15 февраля 2020

Привет, я исследую способ создания базы данных отношений со структурой следующим образом

Parent
 -Child 1
  -Grand Child 1
 -Child 2
  -Grand child 2

Но внучка 2 также может быть частью потомка 1

Если родитель может иметь n детей и ребенок могут иметь n внуков, это хорошо, с помощью RMDBS все просто.

Проблема возникает, когда вы хотите go 'n' глубже с внуками, а внуков можно часть нескольких детей.

Хорошим примером является ebay-классификация их продуктов.

Как правильно создать динамическое c дерево / сеть, подобную этой, в базе данных?

1 Ответ

0 голосов
/ 15 февраля 2020

Из моего ответа на аналогичный вопрос :

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

TABLE Entity (Id, Name, EntityTypeId)
TABLE EntityHierarchy (Id, ParentEntityId, ChildEntityId)

Записи в таблице EntityHierarchy будут ограничены (для приложения уровень) по дереву EntityTypes

...