Разрешить дублирование уникальных идентификаторов в SQL Server 2008? - PullRequest
2 голосов
/ 29 июня 2011

Допустим, у меня есть только 2 таблицы в моей БД.Две таблицы: InputType и HardwareType.Каждая таблица использует GUID в качестве своего первичного ключа.Существует внешний ключ от InputType к HardwareType.

Проблема, с которой я столкнулся, состоит в том, что будет несколько строк InputType, которые ссылаются на одну и ту же строку в HardwareType (то есть имеется несколько входов для каждого типа оборудования).Проблема с этим заключается в том, что столбец, который у меня есть в InputType, который ссылается на GUID в HardwareType, не будет разрешать дублирование, следовательно, не разрешая множественные входы для каждого типа оборудования.

Возможно, я мог бы обойти это, установив тип данных столбца в InputType как "varchar" или что-то вместо "uniqueidentifier", но должен ли я сделать это таким образом?Есть ли возможность разрешить дублирование записей GUID, если это не первичный ключ, а внешний ключ для другой таблицы?

Помощь приветствуется!Спасибо.

1 Ответ

6 голосов
/ 29 июня 2011

То, что тип данных UNIQUEIDENTIFIER не означает, что вы не можете иметь одно и то же значение в этом столбце несколько раз!

Вы CAN на самом деле - если, конечно, вы явно не добавили UNIQUE CONSTRAINT или UNIQUE INDEX к этому столбцу - это ваш выбор, но по умолчанию ничего не применяется, если только вы этого не сделаете кое-что об этом самостоятельно.

Таким образом, вы сможете ссылаться на HardwareType из InputType, используя UNIQUEIDENTIFIER - даже если несколько строк в InputType будут ссылаться на одну и ту же строку в HardwareType - никаких проблем вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...