表之间是什么关系?

时间:2020-05-14 10:30:44

标签: database entity-framework database-design entity-framework-core

我有3个实体,分别是用户,组和子组。

一个群组可以有多个用户。一个组可以有多个子组。

User
-Id
-GroupId
-Name

Group
-Id
-GroupName

Subgroup
-Id
-GroupId
-SubGroupName

用户和子组之间是什么关系?我最初以为会很多。但是用户只能有一个组,并且子组属于一个组。所以我想我可能是错的。

还有,拥有1个属于User_Subgroup的联接表还是需要1个联接表User_Group是否足够?

1 个答案:

答案 0 :(得分:0)

如图所示,UserGroup为1:1。由于GroupSubgroup为1:N,因此UserSubgroup也是1:N。

您根本不需要任何联接表。 Group将充当UserSubgroup之间的联接。联接表仅是维护N:N关系所必需的,并且您的架构中没有任何关系。

顺便说一句,如果您能够修改表模式,从长远来看,您会更高兴地更改ID列名以包括表名,例如UserID表中的UserGroupID表中的Group。例如,UserID中的GroupUserID中的User会变得更加清楚。