我将如何建模多个实体之间的关系,其中一个实体可以是两个独立的、不相关的层次结构的一部分,并且每个实体可以以非层次结构的方式与一个或多个其他实体相关?我只想在数据库中的 2 或 3 个表中执行此操作。
我目前已将其建模为两个表:
Entities
----------------------------------------------------------------
ID bigint identity(1, 1) PK
ParentID bigint null FK
Name varchar(100) not null
Description varchar(256) null
EntityRelationships
----------------------------------------------------------------
LEntityID bigint not null PK, FK
REntityID bigint not null PK, FK
EntityRelationshipTypeID int not null PK, FK
LEntityID 和 REntityID 这两列是 Entities.ID 列的 FK,而 ParentID 是 ID 列的 FK。只要一个实体永远不能有一个以上的父级,这个模型可能会很好地工作。我需要能够允许一个实体拥有多个父级。
表上的自然键是:
Entities: ParentID, Name
EntityRelationships: LEntityID, REntityID, EntityRelationshipTypeID
是的,两个实体可以在两种或多种不同类型的关系中相互关联。
感谢您的任何帮助。