powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Использование сурагатных ключей
18 сообщений из 18, страница 1 из 1
Использование сурагатных ключей
    #35455703
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А хочу использовать в таблицах для связи с другими таблицами сурагатный ключ(автоинкремент) а не наборы естественных ключей. На что правильнее поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный индекс и почему?Или и естественные и сурагатный ключи должны быть в PK?
Спасибо
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455715
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск рулит. Да и статей в инете полно.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455731
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vovan_z
Существует такой подход: в каждой таблице сурр. ключ, он же РК, все ссылки между таблицами (FK) на них. Естественные ключи сами по себе. Фактически симулируется сетевая МД.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455766
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но в таком случае на набор естественного ключа нужно создать наверное хотя бы уникальный индекс?
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455783
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zА хочу использовать в таблицах для связи с другими таблицами сурагатный ключ(автоинкремент) а не наборы естественных ключей. На что правильнее поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный индекс и почему?Или и естественные и сурагатный ключи должны быть в PK?
Спасибо
Ничего не понимаю ... (С)
vovan_zНа что правильнее поставить первичный ключ
почему суррогатный ключ и первичный различаются?
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455823
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что тут не понтяного?!что указать в качестве PK(primary key) для таблицы, если у меня есть и сурагатный ключ и набор естественных ключей?а что указать в качестве уникального индекса?
спасибо
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455832
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. если есть сурагатный то он один всегда PK?Так?что тогда с естественным набором ключей?Уникальный индекс?
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455954
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vovan_zНо в таком случае на набор естественного ключа нужно создать наверное хотя бы уникальный индекс?
Если он действительно уникальный - то да.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35455981
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zЧто тут не понтяного?!что указать в качестве PK(primary key) для таблицы, если у меня есть и сурагатный ключ и набор естественных ключей?а что указать в качестве уникального индекса?
спасибо Если выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен.
vovan_zТ.е. если есть сурагатный то он один всегда PK?Так?что тогда с естественным набором ключей?Уникальный индекс? Да, тогда по набору столбцов (который вы альтернативно хотели использовать в качестве PK) объявляете ограничение UNIQUE
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35456013
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял. спасибо
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35456039
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_z пишет:

На что правильнее
> поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный
> индекс и почему?

PK - на твой суррогатный ключ. Иначе смысла в его существовании нет.
UK - на естественные ключи. Чтобы уникальность отслеживалась.

Или и естественные и сурагатный ключи должны быть в PK?

Нет, в PK - только один из ключей - кандидатов (либо суррогатный,
либо один из естественных). Почему - просто из соображений разумной
достаточности, если один из ключей уже идентифицирует запись,
второй к нему добавлять нет смысла.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35456077
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vovan_zПонял. спасибо
Подумайте об аудите.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35456605
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод vovan_zПонял. спасибо
Подумайте об аудите.

Да, кстати да ! я возьму недорого ....
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35457460
Фотография iCap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L Если выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен.
.......

wikkipedia
Использование

Главное достоинство суррогатного ключа состоит в том, что он никогда не изменяется, поскольку не является информативным полем таблицы (не несёт никакой информации об описываемом записью объекте).

Работа с таблицей, содержащей суррогатный ключ, организуется так, чтобы при добавлении новой записи в поле суррогатного ключа было записано заведомо уникальное значение. Для этого используются либо специальные типы данных, либо триггеры и последовательности. После создания новой записи значение этого поля используется в качестве первичного ключа. Именно на него указывают все ссылки в связанных таблицах.

Использовать суррогатный первичный ключ имеет смысл, если естественный первичный ключ (составленный из информативных полей таблицы) — составной, и на него придётся ссылаться во внешних ключах многих таблиц. В этом случае проще написать запрос:

SELECT * FROM p, c WHERE p.primary_key = c.foreign_key;

чем

SELECT * FROM p, c WHERE p.id1 = c.fk1 AND p.id2 = c.fk2 AND p.id3 = c.fk3;

Кроме того первый вариант работает быстрее.

Также использовать суррогатный ключ имеет смысл в случае, когда возможны изменения полей, составляющих (естественный) первичный ключ (в особенности если этот ключ — составной). В этом случае возникает проблема т.н. «каскадных изменений». При использовании же суррогатного ключа в качестве первичного, изменять его не придётся.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35458287
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LЕсли выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен
Поток сознания? Вообще ничего не понял из написанного Автору топика рекомендую игнорировать процитированный комментарий.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35460010
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов Senya_LЕсли выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен
Поток сознания? Вообще ничего не понял из написанного Автору топика рекомендую игнорировать процитированный комментарий.
Да вы шо? А вот это понять можно?
авторА хочу использовать в таблицах для связи с другими таблицами сурагатный ключ(автоинкремент) а не наборы естественных ключей. На что правильнее поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный индекс и почему?Или и естественные и сурагатный ключи должны быть в PK?
Спасибо
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35460029
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LА вот это понять можно?
Можно понять, что автор ничего не понимает, но хочет разобраться. В такой ситуации ответы, вводящие в заблуждение, несоизмеримо хуже, чем просто промолчать.
...
Рейтинг: 0 / 0
Использование сурагатных ключей
    #35461222
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спросил как мог! Вот здесь и прохожу аудит! Сейчас все понял! Следующий вопрос спрошу более корректно! Всем спасибо.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Использование сурагатных ключей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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