有什麼區別?如果我有這兩個表:是否應該在父表或子表上創建外鍵?
CREATE TABLE Account (Id int NOT NULL)
CREATE TABLE Customer (AccountId int NOT NULL)
而且我想要一個外鍵鏈接兩個,我應該怎麼做,以及爲什麼?
選項1:
ALTER TABLE [dbo].[Customer] WITH CHECK
ADD CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([AccountId])
REFERENCES [dbo].[Account] ([Id])
選項2:
ALTER TABLE [dbo].[Account] WITH CHECK
ADD CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([Id])
REFERENCES [dbo].[Customer] ([Id])
我通常把它放在一張不能沒有另一張的桌子上(如果適用)。但是它將取決於任何使你的查詢變得更簡單的東西,無論從數據概念的角度來看更有意義......而且這兩個發現者甚至可能相反。 – entonio 2013-02-21 17:36:25