Составной ключ становится не уникальным

Как бы вы исправили существующую базу данных года, в которой используется составной ключ из полей школа и год, которые больше не представляют собой уникальную строку? Одна из этих школ выпускает двухгодичный ежегодник. Должен ли я просто сгенерировать идентификатор и использовать его для первичного ключа?


person Harrison Tran    schedule 01.03.2016    source источник
comment
Похоже, вам нужно поле semester или term. Вы можете просто создать суррогатный ключ, но при составлении отчета у вас не будет хорошего бизнес-правила, чтобы знать, на какие записи ссылаться, без значимого поля термина / семестра.   -  person Hart CO    schedule 01.03.2016
comment
Ого, в этом есть смысл, просто сформировать составной ключ из 3-х полей?   -  person Harrison Tran    schedule 01.03.2016
comment
Точно, другое поле в ключе, но дает вам гибкость, чтобы справиться с этим, не ломая голову, пытаясь использовать данные позже.   -  person Hart CO    schedule 01.03.2016
comment
Звучит здорово, как мне отметить комментарий как ответ?   -  person Harrison Tran    schedule 01.03.2016
comment
Думаю, я дам ответ.   -  person Hart CO    schedule 01.03.2016


Ответы (1)


Предлагаю добавить поле semester или term. Вы можете просто создать суррогатный ключ, но добавление еще одного поля к вашему составному ключу дает вам гибкость для аккуратной обработки кварталов / семестров.

person Hart CO    schedule 01.03.2016
comment
Последующий вопрос: не нарушит ли добавление поля термина и суррогатного ключа какие-либо правила нормальной формы? - person Harrison Tran; 01.03.2016