powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ограничение уникальности
6 сообщений из 6, страница 1 из 1
Ограничение уникальности
    #38849751
faustmangos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть схема:



Имена организаций, технологий уникальные. Получается что у меня есть и поле ID как идентификатор и имена уникальные, это хреново? База в mssql, ID типа guid (16 бит), а имена nchar с ограничением уникальности (уникальный индекс), для доступа использую ado.net.
...
Рейтинг: 0 / 0
Ограничение уникальности
    #38849770
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustmangos Получается что у меня есть и поле ID как идентификатор и имена уникальные, это хреново?Это нормально
https://ru.wikipedia.org/wiki/Первичный_ключ Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».
...
Рейтинг: 0 / 0
Ограничение уникальности
    #38849850
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustmangosЕсть схема:



Имена организаций, технологий уникальные. Получается что у меня есть и поле ID как идентификатор и имена уникальные, это хреново? База в mssql, ID типа guid (16 бит), а имена nchar с ограничением уникальности (уникальный индекс), для доступа использую ado.net.
Самое главное, чтобы тебе сейчас не пришла мысль - "Раз у меня ID уникальный и имена уникальные, то я сейчас сделаю крутецки круто - выкину ID нах"
...
Рейтинг: 0 / 0
Ограничение уникальности
    #38851096
Den89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustmangos,

Не смешивайте понятия "первичный ключ" (ПК) и "уникальность". Первичный ключ всегда уникален, но уникальное поле не обязано быть ПК. Первичные ключи бывают естественными и суррогатными. Естественный ПК - это как в Вашем случае выкинь поле id, оставив поле name и сделав его ПК. Суррогатный ПК - это в Вашем случае поле id.

Естественные ключи имеет немало плюсов для высокой производительности, но их недостатки в больше случаев перевешивают всех их плюсы вместе взятые. На Вашем примере, любая ссылка на таблицу с естественным ключом будет хранить значение атрибута name (например, сontracts.client для ссылок на organizations). В случае обновления этого поля сперва придется обновить все ссылки на запись из других таблиц.

Я за использование суррогатных внешних ключей (т.е. оставить всё как есть). Ситуации, когда естественные ПК действительно необходимы (из-за проблем быстродействия), не так часто встречаются (хотя от целей базы и условий эксплуатации СУБД зависит).
...
Рейтинг: 0 / 0
Ограничение уникальности
    #38851097
Den89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Вашем примере, если выкинуть поле id, сделав name ПК, любая ссылка на таблицу с естественным ключом будет хранить значение атрибута name (например, сontracts.client для ссылок на organizations). В случае обновление первичного естественного ключа (т.е. поля name, если решили убрать id) сперва придется обновить все ссылки на запись из других таблиц. Очень много неудобств.
...
Рейтинг: 0 / 0
Ограничение уникальности
    #38851689
faustmangos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Den89, я понял, спасиб
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ограничение уникальности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]