SQL - 派生外键 - 可能吗?

时间:2010-06-05 14:46:26

标签: .net sql entity-framework foreign-keys

我只是好奇这是否可行,特别是在.NET CE实体框架中支持的SQL CE(Express)中:

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

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

外键引用Table1.url,使Table.url包含Table2.domain

e.g。

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的实体框架是否会自动支持这个?

1 个答案:

答案 0 :(得分:2)

不,整个外键值必须与引用表中的整个主键值匹配。

我正在考虑一些有用的建议。

  • 您可以使用触发器或检查约束来验证table2中的字符串,但这涉及编写容易出错的细致表达式。

  • 您可以在table1中冗余地存储域,在其上放置UNIQUE约束,并在table2中声明外键以指向table1.domain。外键约束可以引用唯一约束中的列以及主键约束中的列。