SQL - 派生的外键 - 可能吗?
问题描述:
我只是好奇,如果这是可能的,特别是在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的实体框架自动支持呢?
答
不,整个外键值必须与引用表中的整个主键值相匹配。
我在想一些有用的建议。
您可以使用触发器或检查约束来验证table2中的字符串,但这涉及编写容易出错的细致表达式。
您可以将域冗余地存储在table1中,对其设置
UNIQUE
约束,并在table2中声明您的外键以指向table1.domain。外键约束可以引用唯一约束中的列以及主键约束中的列。