|
|
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
А хочу использовать в таблицах для связи с другими таблицами сурагатный ключ(автоинкремент) а не наборы естественных ключей. На что правильнее поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный индекс и почему?Или и естественные и сурагатный ключи должны быть в PK? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 15:41 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Поиск рулит. Да и статей в инете полно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 15:44 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
vovan_z Существует такой подход: в каждой таблице сурр. ключ, он же РК, все ссылки между таблицами (FK) на них. Естественные ключи сами по себе. Фактически симулируется сетевая МД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 15:46 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Но в таком случае на набор естественного ключа нужно создать наверное хотя бы уникальный индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 15:53 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
vovan_zА хочу использовать в таблицах для связи с другими таблицами сурагатный ключ(автоинкремент) а не наборы естественных ключей. На что правильнее поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный индекс и почему?Или и естественные и сурагатный ключи должны быть в PK? Спасибо Ничего не понимаю ... (С) vovan_zНа что правильнее поставить первичный ключ почему суррогатный ключ и первичный различаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 15:56 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Что тут не понтяного?!что указать в качестве PK(primary key) для таблицы, если у меня есть и сурагатный ключ и набор естественных ключей?а что указать в качестве уникального индекса? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 16:04 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Т.е. если есть сурагатный то он один всегда PK?Так?что тогда с естественным набором ключей?Уникальный индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 16:06 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
vovan_zНо в таком случае на набор естественного ключа нужно создать наверное хотя бы уникальный индекс? Если он действительно уникальный - то да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 16:44 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
vovan_zЧто тут не понтяного?!что указать в качестве PK(primary key) для таблицы, если у меня есть и сурагатный ключ и набор естественных ключей?а что указать в качестве уникального индекса? спасибо Если выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен. vovan_zТ.е. если есть сурагатный то он один всегда PK?Так?что тогда с естественным набором ключей?Уникальный индекс? Да, тогда по набору столбцов (который вы альтернативно хотели использовать в качестве PK) объявляете ограничение UNIQUE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 16:49 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Понял. спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 16:55 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
vovan_z пишет: На что правильнее > поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный > индекс и почему? PK - на твой суррогатный ключ. Иначе смысла в его существовании нет. UK - на естественные ключи. Чтобы уникальность отслеживалась. Или и естественные и сурагатный ключи должны быть в PK? Нет, в PK - только один из ключей - кандидатов (либо суррогатный, либо один из естественных). Почему - просто из соображений разумной достаточности, если один из ключей уже идентифицирует запись, второй к нему добавлять нет смысла. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 17:00 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
vovan_zПонял. спасибо Подумайте об аудите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 17:08 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
_мод vovan_zПонял. спасибо Подумайте об аудите. Да, кстати да ! я возьму недорого .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 00:02 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
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; Кроме того первый вариант работает быстрее. Также использовать суррогатный ключ имеет смысл в случае, когда возможны изменения полей, составляющих (естественный) первичный ключ (в особенности если этот ключ — составной). В этом случае возникает проблема т.н. «каскадных изменений». При использовании же суррогатного ключа в качестве первичного, изменять его не придётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 12:23 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Senya_LЕсли выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен Поток сознания? Вообще ничего не понял из написанного Автору топика рекомендую игнорировать процитированный комментарий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 15:52 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Senya_LЕсли выбираете в качетсве PK набор естественных ключей, то необходимость в суррогатном суроггатный ключ бессмысленен Поток сознания? Вообще ничего не понял из написанного Автору топика рекомендую игнорировать процитированный комментарий. Да вы шо? А вот это понять можно? авторА хочу использовать в таблицах для связи с другими таблицами сурагатный ключ(автоинкремент) а не наборы естественных ключей. На что правильнее поставить первичный ключ(PK) в таблице и на что нужно сделать уникальный индекс и почему?Или и естественные и сурагатный ключи должны быть в PK? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 12:39 |
|
||
|
Использование сурагатных ключей
|
|||
|---|---|---|---|
|
#18+
Senya_LА вот это понять можно? Можно понять, что автор ничего не понимает, но хочет разобраться. В такой ситуации ответы, вводящие в заблуждение, несоизмеримо хуже, чем просто промолчать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=100&tid=1543738]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 392ms |

| 0 / 0 |
