我想知道对于多对多关系的交叉表有什么更好的设计.
我正在考虑的两种方法是:
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 )
) 
要么
CREATE TABLE SomeIntersection 
(
     TableAId UNIQUEIDENTIFIER REFERENCES TableA NOT NULL,
     TableBId UNIQUEIDENTIFIER REFERENCES TableB NOT NULL,
     PRIMARY KEY(TableAId, TableBId )
) 
一个人对另一个人有好处吗?
编辑2:****请注意:我计划使用Entity Framework为数据库提供API.考虑到这一点,一个解决方案在EF中的效果是否优于另一个?
编辑:在相关的说明中,对于两列引用同一个表的交集表(下面的示例),是否有办法使两个字段在记录上不同?
CREATE TABLE SomeIntersection 
(
     ParentRecord INT REFERENCES TableA NOT NULL,
     ChildRecord INT REFERENCES TableA NOT NULL,
     PRIMARY KEY(TableAId, TableBId )
)
我想阻止以下情况
ParentRecord          ChildRecord …