与SQL Management Studio的多对多关系
我有以下数据类型-House、Owner,主键分别为houseID和ownerID 一个房主可以有很多房子。一栋房子可以有很多主人。因此,我创建了一个中间表HouseOwner,它包含两列:houseID和ownerID与SQL Management Studio的多对多关系,sql,entity-relationship,ssms,Sql,Entity Relationship,Ssms,我有以下数据类型-House、Owner,主键分别为houseID和ownerID 一个房主可以有很多房子。一栋房子可以有很多主人。因此,我创建了一个中间表HouseOwner,它包含两列:houseID和ownerID 我应该使houseID和ownerID列成为HouseOwner表的联合主键吗 在HouseOnwer表与House和Owner表之间创建关系怎么样?我转到数据库图并添加所有三个表-现在我应该将houseID从House表拖到HouseOwner表的houseID上吗?还是应该
问题1:我想添加一个额外的代理主键(只是一个标识列),但对此有很多讨论
问题2:外键在您的HouseOwner表中,它们与house的PK和owner表的另一个外键相关。问题1:我想添加一个额外的代理主键(只是一个标识列),但对此有很多讨论 问题2:外键在house owner表中,它们与house的PK和owner表的另一个外键相关。1)是-具体地说,我会这样做,因为如果您使用一些ORM工具(特别是EF),当您的表设计成这样时,多对多关系会自动计算出来 2) 我建议只采用老式的方式,这样您就不必担心UI:
alter table HouseOwner
add constraint FK_HouseOwner_House
foreign key (HouseId)
references House (HouseId)
go
alter table HouseOwner
add constraint FK_HouseOwner_Owner
foreign key (OwnerId)
references Owner (OwnerId)
go
1) 是的,特别是,我会这样做,因为如果您使用一些ORM工具(特别是EF),当您的表设计成这样时,多对多关系将自动计算出来
2) 我建议只采用老式的方式,这样您就不必担心UI:
alter table HouseOwner
add constraint FK_HouseOwner_House
foreign key (HouseId)
references House (HouseId)
go
alter table HouseOwner
add constraint FK_HouseOwner_Owner
foreign key (OwnerId)
references Owner (OwnerId)
go