2010-06-05 39 views
1

我只是好奇,如果這是可能的,特別是在SQL CE(快遞)與.NET的實體框架支持:SQL - 派生的外鍵 - 可能嗎?

Table1 (primary) 
-nvarchar(2000) url 
-... 

Table2 (with foreign key) 
-nvarchar(2000) domain 
-... 

上Table2.domain 外鍵引用Table1.url這樣Table.url包含Table2.domain

eg

Table1: 
http://www.google.com/blah/blah 
http://www.cnn.com/blah/ 
http://www.google.com/foo 

Table2: 
google.com 
cnn.com 

是否有可能這是腳本和SQL CE(更不用說任何關係型數據庫),並強制執行,如果是的話,如果能導入我的數據庫爲示範NET的實體框架自動支持呢?

回答

2

不,整個外鍵值必須與引用表中的整個主鍵值相匹配。

我在想一些有用的建議。

  • 您可以使用觸發器或檢查約束來驗證table2中的字符串,但這涉及編寫容易出錯的細緻表達式。

  • 您可以將域冗餘地存儲在table1中,對其設置UNIQUE約束,並在table2中聲明您的外鍵以指向table1.domain。外鍵約束可以引用唯一約束中的列以及主鍵約束中的列。