我有一個SQL Server下表2008分貝:如何使用引用另一個表的檢查約束?
tblItem,具有項目ID場;
tblGoodItem,它還有一個ItemID字段,並有一個指向tblItem的外鍵;
tblBadItem,它也有一個ItemID字段,並且還有一個指向tblItem的外鍵。
一件物品不能既是好物品又是壞物品;它必須是一個或另一個。但是,無論項目是好還是壞,它都必須是一個項目。
我的問題是這樣的:如何向tblGoodItem和tblBadItem中的ItemID字段添加一個約束,以便兩個表中都不能存在ItemID值?
我讀過的堆棧溢出一些回答類似的問題,我想這個解決方案:
創建一個視圖vwItem它連接tblGoodItem上tblBadItem上項目ID。
編寫一個UDF fnItem它對vwItem進行查詢以查看視圖中存在多少記錄。
有哪些要求fnItem並驗證返回的值是0
這是最好的辦法約束?有沒有人有更好的主意?
你打敗了我幾秒鐘。 – 2010-09-16 16:14:43
我很喜歡這個想法。無需擔心從壞到好 - 事實上,我並不希望發生這樣的變化。 – 2010-09-16 16:35:12