繁体   English   中英

在数据库中建模组成员身份

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM