В настоящее время я изучаю SQL, и у меня есть физическая модель данных, которую нужно реализовать в коде Тем не менее, во время создания ограничений числа, появляющиеся рядом с FK и U, начали меня смущать. Рассмотрим диаграмму . РЕДАКТИРОВАТЬ: Добавлена полная физическая модель.
Я знаю, что когда речь идет о первичных ключах, у нас должна быть одна PK-зависимость, все столбцы которой помечены как PK. Однако, когда дело касается ограничений FK или Unique, я сам в этом не уверен.
Предположим, я хочу создать ограничения FK для таблицы Opcao.
Должен ли я создать одно ограничение для нескольких столбцов, ссылаясь на соответствующие столбцы следующим образом:
ALTER TABLE MySchema.Opcao ADD CONSTRAINT [FK_SUPERKEY] FOREIGN KEY ([prova], [aluno], [pergunta], [dataRealizacao])
REFERENCES MySchema.Integra([prova], [aluno], [pergunta], [dataRealizacao]);
Или создайте ограничение для каждого столбца, например:
ALTER TABLE MySchema.Opcao ADD CONSTRAINT [FK_OPCAO_PROVA] FOREIGN KEY ([prova])
REFERENCES MySchema.Integra([prova]);
ALTER TABLE MySchema.Opcao ADD CONSTRAINT [FK_OPCAO_ALUNO] FOREIGN KEY ([aluno])
REFERENCES MySchema.Integra([aluno]);
ALTER TABLE MySchema.Opcao ADD CONSTRAINT [FK_OPCAO_PERGUNTA] FOREIGN KEY ([pergunta])
REFERENCES MySchema.Integra([pergunta]);
ALTER TABLE MySchema.Opcao ADD CONSTRAINT [FK_OPCAO_DATAREALIZACAO] FOREIGN KEY ([dataRealizacao])
REFERENCES MySchema.Integra([dataRealizacao]);
Будут ли ограничения уникальности следовать той же логике? Как я знаю, когда делать то или другое?