У меня есть база данных SQL-Server 2008 и схема, которая использует ограничения внешнего ключа для обеспечения ссылочной целостности. Работает по назначению. Теперь пользователь создает представления исходных таблиц для работы только с подмножествами данных. Моя проблема заключается в том, что фильтрация определенных наборов данных в некоторых таблицах, но не в других, будет нарушать ограничения внешнего ключа.
Представьте себе две таблицы "один" и "два". "один" содержит только столбец id со значениями 1,2,3. "Два" ссылки "один". Теперь вы создаете представления для обеих таблиц. Представление для таблицы "два" не фильтрует ничего, в то время как представление для таблицы "один" удаляет все строки, кроме первого. В итоге вы получите записи во втором представлении, в котором нет нигде.
Есть ли способ избежать этого? Можете ли вы иметь ограничения внешнего ключа между представлениями?
Некоторые разъяснения в ответ на некоторые комментарии:
Я знаю, что основные ограничения будут обеспечивать целостность данных даже при вставке через представления. Моя проблема заключается в заявлениях, которые потребляют взгляды. Эти утверждения были написаны с учетом оригинальных таблиц и предполагают, что некоторые объединения не могут потерпеть неудачу. Это предположение всегда справедливо при работе с таблицами, но просмотры потенциально могут его нарушить.
Объединение/проверка всех ограничений при создании представлений в первую очередь аннуируется из-за большого количества ссылочных таблиц. Таким образом, я надеялся избежать этого.