只是好奇解决以下问题的最佳实践是什么。我有机构、账户和用户表。机构和账户是一对多的关系。机构和用户是一对多的关系。用户和帐户具有多对多关系,或者他们可以具有多对多(或 *)帐户。这意味着,可以将一个用户指定给所有帐户,以及添加到该机构的任何新帐户,该用户无需明确添加关系即可访问。
最佳答案
我会这样做:
Institutions
InstitutionID INT IDENTITY(1,1) NOT NULL PRIMARY KEY
Name VARCHAR(255)
Users
UserID INT IDENTITY(1,1) NOT NULL PRIMARY KEY
Username VARCHAR(255) NOT NULL
InstitutionID INT NOT NULL
Accounts
AccountID INT IDENTITY(1,1) NOT NULL PRIMARY KEY
Account VARCHAR(255) NOT NULL
InstitutionID INT NOT NULL
Users_Accounts
Users_AccountsID INT IDENTITY(1,1) NOT NULL PRIMARY KEY
UserID INT NOT NULL
AccountID INT NULL
在 Users_Accounts
表中拥有一个带 NULL
条目的用户 ID 具有全局 (*) 访问权限。这样,您可以确定任何帐户和/或用户的机构及其权限。
编辑:不同表中具有相同名称的列表示外键。如果您不做重负荷,请使用它们。
关于sql - 容纳一对多和一对多(或一对*)关系的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094687/