我有以下SQL表:
{{1}}
创建包含的表的最佳方法是什么:
这应该仅使用一个表吗?
答案 0 :(得分:1)
对于多对多关系,您必须添加交集表。由于您有2个连接,因此需要2个表:
CREATE TABLE dbo.FavoritUsers (
FU_UserId int FOREIGN KEY References dbo.Users(Id),
FU_FavofitUserId FOREIGN KEY References dbo.Users(Id),
PRIMARY KEY (FU_UserId , FU_FavofitUserId)
)
CREATE TABLE dbo.FavoritOrganizations (
FO_UserId int FOREIGN KEY References dbo.Users(Id),
FO_FavofitOrganizationId FOREIGN KEY References dbo.Organizations(Id)
PRIMARY KEY (FO_UserId , FO_FavofitOrganizationId)
)
答案 1 :(得分:0)
我建议另一张桌子 - 例如OrganizationTree。这应该有一列Orga.ID和两列USer_ID和Supervisor / Parent / Manager / whatever_id,以便在两个人之间保持连接。 另一种可能性是将用户表扩展到另一列(例如" parent_id"," Supervisor_id"或其他)。但是你仍然需要另一张Orga Connection的桌子。