SQL - Полученный внешний ключ - возможно? - PullRequest
1 голос
/ 05 июня 2010

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

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

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

внешний ключ на Table2.domain ссылается на Table1.url так, что Table.url содержит Table2.domain

, например

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

1 Ответ

2 голосов
/ 05 июня 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...