Удобство использования уникальных ограничений - PullRequest
0 голосов
/ 14 февраля 2019

Я хотел бы спросить, в каких случаях правильно использовать ключевое слово UNIQUE в SQL.Я знаю, что если я объявляю столбец первичным ключом, он сам по себе уникален, но что происходит с другими атрибутами, такими как страна?Правильно ли использовать уникальные ограничения там?

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

Как и любое другое ограничение, ограничение UNIQUE обеспечивает некоторый уровень качества данных .Если вы добавите это ограничение к столбцу, то все значения в этом столбце будут другими.

Например, в таблице, где EMPLOYEE_PK уже уникален (поскольку это PK), вы можете захотеть применитьCARD_NUMBER столбец также уникален;это число отображается на карточке сотрудника.В вашей модели номер карты может отличаться от PK, и вам также может потребоваться убедиться, что он уникален.

Еще одно дополнительное преимущество ограничения UNIQUE состоит в том, что другие таблицы могут связывать с ним внешние ключи.Поскольку столбец UNIQUE эффективно действует как «ключ таблицы», любая другая таблица может устанавливать внешний ключ, указывающий на него.Я встречал много людей, которые [ошибочно] считают, что внешние ключи могут указывать только на первичные ключи.

0 голосов
/ 14 февраля 2019

Ключевое слово unique в sql используется всякий раз, когда вы хотите, чтобы каждая запись строки в этом столбце отличалась друг от друга.Столбец первичного ключа автоматически уникален, но в некоторых случаях может потребоваться, чтобы другие столбцы были уникальными.

Например, если у вас есть product_id в качестве первичного ключа, это гарантирует, что ни в одной другой строке не будет продукта с product_id в качестве этой строки.И в дополнение к этому вы хотите, чтобы никакие две строки не имели одинаковый product_imei, тогда вы можете сделать product_imei уникальным.

Вы можете создать составной первичный ключ, такой как Primary Key(column1,column2), но это будетозначает, что комбинация, которую вы получите от product_id и product_imei, будет уникальной.

Например, (DLK-22,356938035643809) и (DLK-22, 11111111111111) оба могут существовать в таблице, если (product_id,product_imei) является первичным ключом.

Таким образом, вы можете использовать ограничение unique на любое количество столбцов, и его необходимость зависит от сценария проблемы, с которой вы столкнулись.Вы можете использовать ограничение unique с country, если это вам помогает, проблем с этим нет

0 голосов
/ 14 февраля 2019

Ограничение UNIQUE гарантирует, что все значения в столбце различны.Ограничения UNIQUE и PRIMARY KEY обеспечивают гарантию уникальности для столбца или набора столбцов.Ограничение PRIMARY KEY автоматически имеет уникальное ограничение.

...