存储类别的数据模型(多个父节点)

时间:2009-11-17 13:57:52

标签: ruby database data-structures tree data-modeling

我有以下类别结构:

  - 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
        - ...
      - ...

存储此类数据结构的最佳方法是什么?我尝试了树,但这是一个很大的重复,计数器无法正常工作。

我需要的是一种在DB中存储这种结构的方法。在每个类别下放置项目。并有工作项目柜台。

3 个答案:

答案 0 :(得分:2)

如果您确定您的节点有多深,那么一组相关表将正常工作。但是,如果节点需要能够处理任意数量级别的数据,那么您可能希望调整以与自身相关的表为中心的设计。请查看here以获取更多解释。

答案 1 :(得分:0)

我愿意

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

答案 2 :(得分:0)

您可以在SQL中实现,并且事实上在不直接支持递归查询的数据库服务器中。看看here。 嵌套集模型非常优雅,易于在任何RDBMS中实现。