我需要设置为其他表中的组合主键之一的外键

问题描述:

我有3个组合主键的表,我需要设置为外键,它指的是其他表中的主键之一。我需要设置为其他表中的组合主键之一的外键

  • 表1:商家(MID,MNAME,ADDID,..)PK(MID,ADDID)。
  • 表2:地址(ADDID,名称..)PK(ADDID)
  • 表3:存储(STOREID,ADDID,MID,STORENAME,..)PK(STOREID,ADDID,MID)

mId表店是一个外键客商表的主键mIdaddId在TBL店外键表地址的主键。

如何在sql server management studio中使用gui设置此关系?

+0

商店表中的addId,它是指商家的addId? – flup 2013-04-09 06:42:11

+0

是商店表中的addId是指商户的地址addId和商户的addId是fk到pk addId的Adreess – user2260363 2013-04-09 06:55:24

你的限制可能会像这样工作,即在级联样式:

alter table store add constraint FK_store_merchant foreign key (mId, addId) references merchant (mId,addId) 
alter table merchant add constraint FK_merchant_address foreign key (addId) references address (addId) 

不知道你是如何在GUI中做到这一点,但只是从一个查询窗口运行此。

+0

但是商店的addId是fk addId在商家地址中不加addId – user2260363 2013-04-09 07:00:44

+0

在一天结束时就没关系了。基本上,(mId,addId)的组合需要有效,而这依赖于(addId)的有效性。所以,这些约束可以正确执行关系。您可能需要更改,即删除一些现有的约束条件。 – muhmud 2013-04-09 07:16:32

+0

下面是我forkey要求:约束'fk_Merchants_Address1' 外键('addId') 参考'dotm'.'Address'('addId') 约束'fk_Stores_Merchants' 外键('mId') 参考'dotm'.'Merchants'('mId') ON DELETE NO ACTION 约束'fk_Stores_Address1' 外键('addId') 参考'dotm'.'Address'('addId') ON DELETE没有行动 – user2260363 2013-04-09 07:19:02