Повторяющиеся значения столбцов в таблице - PullRequest
0 голосов
/ 10 июня 2009

Мой сценарий - у меня есть таблица с столбцами x, b, c и D. A - это PK, а B и C - внешние ключи.

Я намереваюсь добавить столбец exta в эту таблицу E, побочный эффект этого в приложении заключается в том, что он приведет к вставке строки, после которой в столбцах B и C. появятся повторяющиеся значения.

Это нарушает какие-либо ссылочные правила? Я предполагаю, что так как если к этой таблице будут сделаны какие-либо соединения с этими внешними ключами, то они больше не будут возвращать уникальную строку.

Спасибо

Ответы [ 2 ]

3 голосов
/ 10 июня 2009

Если отношение один ко многим, вы не нарушаете ссылочное правило, если несколько строк ссылаются на одну внешнюю строку.

Добавление дополнительного столбца таким способом может привести к поломке существующих приложений. Такой запрос, который раньше возвращал одну строку, теперь может возвращать много строк:

 select *
 from table
 where b=1 and c=2
0 голосов
/ 10 июня 2009

Если вы интенсивно использовали коррелированные подзапросы в своем приложении, вы все еще можете быть небезопасными, поскольку новые правила могут означать, что подзапрос, который раньше возвращал только одну запись, может теперь при некоторых обстоятельствах возвращать два или более, а затем он сломается. Тот факт, что таблица допускает от одной до нескольких записей, не означает, что все связанные подзапросы не были записаны для фильтрации только одной записи (поскольку они не могут работать по-другому), поэтому изменение может повлиять на них. Это (а также производительность) является одной из причин, почему я никогда не использую коррелированные подзапросы.

...