2013-04-09 67 views
2

我有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

回答

0

你的限制可能會像這樣工作,即在級聯樣式:

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

相關問題