2010-06-05 2 views
1

Мне просто интересно, если это возможно, в частности, в SQL CE (Express) с поддержкой в ​​Framework .NET в Entity:SQL - Держимый внешний ключ - возможно?

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

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

внешнего ключа на Table2.domain ссылается Table1.url таким образом, что Table.url содержит Таблица2.домен

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 (не говоря уже о какой-либо отношение базы данных) и, если да, то может Framework Entity .NET автоматически поддерживать это, если я импортировать свою базу данных в модель?

ответ

2

Нет, все значение внешнего ключа должно соответствовать всему значению первичного ключа в таблице, на которую делается ссылка.

Я пытаюсь придумать что-нибудь полезное, чтобы предложить.

  • Вы можете проверить строки в table2, используя триггер или проверочное ограничение, но это предполагает написание тщательных выражений, которые легко ошибиться.

  • Вы можете сохранить домен повторно в таблице1, наложить на него ограничение UNIQUE и объявить свой внешний ключ в таблице2, чтобы указать на table1.domain. Ограничения внешнего ключа могут ссылаться на столбцы в уникальном ограничении, а также на столбцы в ограничении первичного ключа.

Смежные вопросы