Мне просто любопытно, если это возможно, конкретно в SQL CE (Экспресс) с поддержкой в Платформе Объекта.NET:
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 может автоматически поддерживать это, если я импортирую свою базу данных в модель?
Нет, все значение внешнего ключа должно соответствовать всему первичному ключу. значение в указанной таблице.
Я пытаюсь придумать что-нибудь полезное, чтобы предложить.
Вы можете проверить строки в table2 с помощью триггера или проверочного ограничения, но это включает в себя тщательное написание выражений, в которых легко ошибиться.
Вы можете сохранить домен с избыточностью в table1, наложить на него ограничение UNIQUE
и объявить свой внешний ключ в table2, чтобы он указывал на table1.domain. Ограничения внешнего ключа могут ссылаться на столбцы в ограничении уникальности, а также на столбцы в ограничении первичного ключа.