Модель данных для хранения категорий (несколько родительских узлов) - PullRequest
2 голосов
/ 17 ноября 2009

У меня следующая структура категорий:

  - Transport (10)
    - Cars (5)
      - Audi (2)
      - BMW (3)
      - ...
      - Spare Parts (5)
        - Audi (5)
          - Audi glass (1)
          - Carburetors (4)
          - Mirrors
          - ...          

    - Buses

    - Spare Parts (5)
      - Audi (5)
        - Audi glass (1)
        - Carburetors (4)
        - Mirrors
        - ...
      - BMW
        - Audi glass
        - Carburetors
        - Mirrors
        - ...
      - ...

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

Мне нужен способ хранить такую ​​структуру в БД. Поместить товар под каждую категорию. И есть счетчики рабочих предметов.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2010

Если вы точно знаете, как далеко зайдут ваши узлы, тогда набор связанных таблиц будет работать нормально. Тем не менее, если узлы должны иметь возможность обрабатывать данные на любом количестве уровней, вам может потребоваться адаптировать проект, более ориентированный на таблицы, которые связаны с самими собой. Посмотрите здесь для более подробного объяснения.

0 голосов
/ 13 января 2010

Вы можете сделать это в SQL и фактически на серверах БД, которые напрямую не поддерживают рекурсивные запросы Посмотрите на здесь . Модель вложенного набора элегантна и проста для внедрения в любую СУБД.

0 голосов
/ 17 ноября 2009

Я бы сделал

table TransportType (TTType(PK), Description)
table Model (MType(PK), Description)
table SparePart (SPNum(PK), Description)
table SparePartAssignment (AKey(PK), TTType(FK), MType(FK), SPNum(FK))

надеюсь, что поможет

удачи MikeD

...