我有3个实体,分别是用户,组和子组。
一个群组可以有多个用户。一个组可以有多个子组。
User
-Id
-GroupId
-Name
Group
-Id
-GroupName
Subgroup
-Id
-GroupId
-SubGroupName
用户和子组之间是什么关系?我最初以为会很多。但是用户只能有一个组,并且子组属于一个组。所以我想我可能是错的。
还有,拥有1个属于User_Subgroup的联接表还是需要1个联接表User_Group是否足够?
答案 0 :(得分:0)
如图所示,User
至Group
为1:1。由于Group
至Subgroup
为1:N,因此User
至Subgroup
也是1:N。
您根本不需要任何联接表。 Group
将充当User
和Subgroup
之间的联接。联接表仅是维护N:N关系所必需的,并且您的架构中没有任何关系。
顺便说一句,如果您能够修改表模式,从长远来看,您会更高兴地更改ID
列名以包括表名,例如UserID
表中的User
,GroupID
表中的Group
。例如,UserID
中的Group
与UserID
中的User
会变得更加清楚。