相关疑难解决方法(0)

多对多关系设计 - 交叉表设计

我想知道对于多对多关系的交叉表有什么更好的设计.

我正在考虑的两种方法是:

CREATE TABLE SomeIntersection 
(
     IntersectionId UNIQUEIDENTIFIER PRIMARY KEY,
     TableAId UNIQUEIDENTIFIER REFERENCES TableA NOT NULL,
     TableBId UNIQUEIDENTIFIER REFERENCES TableB NOT NULL,
     CONSTRAINT IX_Intersection UNIQUE(TableAId, TableBId )
) 
Run Code Online (Sandbox Code Playgroud)

要么

CREATE TABLE SomeIntersection 
(
     TableAId UNIQUEIDENTIFIER REFERENCES TableA NOT NULL,
     TableBId UNIQUEIDENTIFIER REFERENCES TableB NOT NULL,
     PRIMARY KEY(TableAId, TableBId )
) 
Run Code Online (Sandbox Code Playgroud)

一个人对另一个人有好处吗?
编辑2:****请注意:我计划使用Entity Framework为数据库提供API.考虑到这一点,一个解决方案在EF中的效果是否优于另一个?

编辑:在相关的说明中,对于两列引用同一个表的交集表(下面的示例),是否有办法使两个字段在记录上不同?

CREATE TABLE SomeIntersection 
(
     ParentRecord INT REFERENCES TableA NOT NULL,
     ChildRecord INT REFERENCES TableA NOT NULL,
     PRIMARY KEY(TableAId, TableBId )
)
Run Code Online (Sandbox Code Playgroud)

我想阻止以下情况

ParentRecord          ChildRecord …
Run Code Online (Sandbox Code Playgroud)

sql t-sql database-design

22
推荐指数
3
解决办法
1万
查看次数

标签 统计

database-design ×1

sql ×1

t-sql ×1