我只是好奇这是否可行,特别是在.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的实体框架是否会自动支持这个?
答案 0 :(得分:2)
不,整个外键值必须与引用表中的整个主键值匹配。
我正在考虑一些有用的建议。
您可以使用触发器或检查约束来验证table2中的字符串,但这涉及编写容易出错的细致表达式。
您可以在table1中冗余地存储域,在其上放置UNIQUE
约束,并在table2中声明外键以指向table1.domain。外键约束可以引用唯一约束中的列以及主键约束中的列。