2013-04-08 36 views
0

我有三個表教師,學生,ViewType設置的外鍵多個表

table Teachers{ 
    Id uniqueidentifier, 
    Name nvarchar 
} 


table Student{ 
    Id uniqueidentifier, 
    Name nvarchar 
} 


table ViewType{ 
    Id uniqueidentifier, 
    Type String 
} 

注:比方說,對於ViewType是不是正規的查找表的例子。
它包含了如何在ui中呈現教師或學生的數據,因此不應該在教師或學生表模型中。

是否有一種方法可以創建一個外鍵給兩個表,其中一個鍵被強制執行到 並且只能從兩個表中執行? 謝謝。

回答

1

不符合聲明性參照完整性約束。

你將不得不實施這與觸發器;你可能需要他們在所有三個桌子上(insert + update,ViewType,delete + update)。

你可以把限制的其他方式:

alter table Student add constraint FK foreign key (Id) references ViewType (Id) 
alter table Teachers add constraint FK foreign key (Id) references ViewType (Id) 

它不是完美的(你可以用學生&教師引用相同的ID,你將不得不處理結束),但這可能是你能做的最好的。