2010-06-05 36 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。外键约束可以引用唯一约束中的列以及主键约束中的列。