gpt4 book ai didi

data-structures - 如何为具有多个父项的数据实体建模?

转载 作者:行者123 更新时间:2023-12-02 02:31:43 25 4
gpt4 key购买 nike

我如何为多个实体之间的关系建模,其中一个实体可以是两个独立的、不相关的层次结构的一部分,而每个实体可以以非层次结构的方式与 1 个或多个其他实体相关?我只想在数据库中的 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 列的外键,而 ParentID 是 ID 列的外键。只要一个实体永远不会有超过一个父实体,这个模型可能会工作得很好。我需要能够允许一个实体拥有多个父级。

表上的自然键是:

Entities: ParentID, Name
EntityRelationships: LEntityID, REntityID, EntityRelationshipTypeID

是的,两个实体可以在两种或更多种不同类型的关系中相互关联。

感谢您的帮助。

最佳答案

是的,你可以做到这一点。您需要引入另一个表调用 EntityParentRelation,结构如下

EntityParentRelation
--------------------------------------------------------------------------------
ID bigint identity(1,1) pk
EntityID bigint not null fk
ParentID bigint not null fk

其中 EntityID 和 ParentID 都是 Entities.ID 的 fks。并从实体中删除 ParentID。并对 EntityRelationships 中的关系进行一点修改

代替将 fk 指向实体,您需要将 fk 指向 EntityParentRelation.ID 的 LEntityID 和 REntittyID。

希望对您有所帮助:)。

关于data-structures - 如何为具有多个父项的数据实体建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com