我的数据库中有以下实体:
项目仅与一个组相关。但是,组可以属于文件夹或集合,而文件夹或集合又可以属于文件夹或集合。 像这样的东西
Item1->组别1
Group1-> Folder1-> FOLDER2 Group2-> Set1-> Folder3
我正在尝试将其映射到SQL Server中的关系数据库。
这就是我当前的映射方式
每个单独的表格 1.文件夹 2.设置 3.小组 4.项目
项目表将ParentId作为组ID
但是我还有一个Table ParentChildMapping,它将具有
ChildID ParentID(它们中的任何一个都可以映射到FolderID,SetID或GroupID中的任何一个)
这是一个好方法还是有更好的方法?
谢谢,
答案 0 :(得分:0)
您应该考虑文件夹/集合/组的实体子类型方法,并使用递归的一对多关系来记录实体超类型级别的父/子关系。
这看起来像这样:
Table: Container (super-type)
- ContainerID PK
- ParentContainerID NULL FK (to self)
Table: Folder (subtype)
- ContainerID PK FK
- (other folder columns)
Table: Set (subtype)
- ContainerID PK FK
- (other set columns)
Table: Group (subtype)
- ContainerID PK FK
- (other group columns)
Table: Item
- ItemID
- (other item columns)
- ContainerID (FK to GROUP)