[英]Modeling Group Membership in a Database
刚开始设计一个我以前没有做过的数据库。 并且我想知道在数据库中处理组成员身份的最佳方法。
说我有两个桌子。
CREATE TABLE [dbo].[Computers] (
[ComputerID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
);
CREATE TABLE [dbo].[ComputerGroups] (
[ComputerGroupID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
);
我最好将[MemberOfGroup]
字段添加到Computers表中,将[Member]
字段添加到ComputerGroups表中还是创建第3个联结表,并添加[ComputerID] [ComputerGroupID] FK。
我可以使它正常工作,但是哪一种是最好的方法,为什么?
如果计算机可以是多个组的成员,则您具有多对多关系。 在普通的SQL中,您需要一个联结表来实现此目的。
create table GroupMembership (
ComputerID int not null,
GroupID int not null,
--here you can add info that concearns the Membership, like expiry date and such--
)
如果计算机只能是一个组的成员,则只需将组ID添加为“计算机”表中的字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.