Как создать ограничение функции для денормализованных данных?Ограничение функции SQL для денормализованных данных
-- graduation_class table
graduation_class_id | graduation_year_id
123 1
456 2
-- user table
user_id | graduation_class_id | graduation_year_id
555 123 1
556 123 3 <--- bad data
557 456 2
Класс окончания может быть присвоен только году окончания знака. Комбинация этих двух уникальна в таблице graduation_class.
Я хочу создать ограничение функции в столбце graduation_year_id в таблице пользователя, чтобы убедиться, что функция graduation_year_id синхронизируется с соответствующим идентификатором из таблицы graduation_class, так что запись 556 в таблице пользователя никогда не произойдет.
** Пожалуйста, примите во внимание, что нормализация НЕ является решением этого вопроса, или я бы не стал задавать этот вопрос! :) **
ли 'graduation_class_id + graduation_year_id' является уникальным в' graduation_class' таблица –
Да, это уникальное сочетание в таблицу градуировки_класса. –
То, что вы хотите достичь, лучше всего реализовать с помощью ограничения FK –