Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / составной и простой ключ / 10 сообщений из 10, страница 1 из 1
15.11.2007, 21:16
    #34943356
DmitryTS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
Если мне нужно между 2-я таблицами сделать связь многие ко многим, то я создаю третью таблицу и заношу туда внешние ключи на первые две таблицы.
А вопрос по поводу того какой первичный ключ использовать. Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ? Чем это так плохо?
...
Рейтинг: 0 / 0
15.11.2007, 21:24
    #34943367
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
> Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ?

Кто не рекомендует, можно поинтересоваться?
...
Рейтинг: 0 / 0
15.11.2007, 21:31
    #34943371
DmitryTS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
guest_20040621> Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ?

Кто не рекомендует, можно поинтересоваться?

Ну не то что бы не рекомендуют, но во всех книгах, которые я читал, пишут, что нужно использовать составной ключ и не объясняют почему.
...
Рейтинг: 0 / 0
15.11.2007, 21:59
    #34943393
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
В печку такие книжки.
...
Рейтинг: 0 / 0
15.11.2007, 22:44
    #34943418
Baykin Ilya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
Не скажу сейчас конкретные ссылки на книжки, но вроде бы все обычно формально назначают первичный ключ в новом столбце. То есть в связующей таблице получается 3 столбца: 2 внешних ключа и простой (суррогатный) PK.
...
Рейтинг: 0 / 0
16.11.2007, 00:54
    #34943514
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
DmitryTSЕсли мне нужно между 2-я таблицами сделать связь многие ко многим, то я создаю третью таблицу и заношу туда внешние ключи на первые две таблицы.
А вопрос по поводу того какой первичный ключ использовать. Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ? Чем это так плохо?Не совсем понятен смысл вопроса. Суть первичного ключа в однозначной идентификации строки, и не играет роли, сколько полей он содержит, т.е., он вполне может быть и составным. Введение дополнительных атрибутов для выполнения той же задачи(идентификации) особого смысла не имеет, по крайней мере, с логической точки зрения. В вашем случае, если правильно понял, важен лишь сам факт наличия связи между конкретными экземплярами сущностей.
С физической же точки зрения, если этот факт может быть использован где-то еще, то иногда имеет смысл добавлять отдельный атрибут типа автоприращения (или любого другого генератора уникальных значений), обычно, с целью уменьшения объема ключа, который будет мигрировать в подобную сущность, да и запросы иногда будет писать проще, меньше придется перечислять полей в условиях слияний, хотя это не всегда оправдано и может привести к излишним вычислениям, но уже сервером.
Таким образом, введение дополнительного абстрактного идентификатора с формальной точки зрения является излишеством. Вот с этого момента и начинаются разногласия тупоконечников с остроконечниками, известные под общей формулировкой "суррогатные vs естественные", от которых, IMHO, лучше держаться подальше, а пользоваться своим здравым смыслом, исходя из конкретной ситуации.
...
Рейтинг: 0 / 0
16.11.2007, 01:17
    #34943525
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
DmitryTS пишет:

> А вопрос по поводу того какой первичный ключ использовать. Почему не
> рекомендуют в связующей таблице создавать отдельный первичный ключ? Чем
> это так плохо?


Потому что это попросту лишние данные. Они занимают место.
Если ссылок на таблицу связи нет, они не нужны.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.11.2007, 01:23
    #34943529
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
DmitryTS пишет:

> Ну не то что бы не рекомендуют, но во всех книгах, которые я читал,
> пишут, что нужно использовать составной ключ и не объясняют почему.

Да потому что лишних полей добавлять никогда не нужно, и сложно
требовать от автора что он еще должен что-то по этому поводу объяснять.
В любую таблицу можно добавить любое число лишних полей, зачем
же постоянно явно объяснять в каждом случае что этого делать не надо ?
Бритва
Оккама

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.11.2007, 09:46
    #34943803
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
Baykin IlyaТо есть в связующей таблице получается 3 столбца: 2 внешних ключа и простой (суррогатный) PK.
+ дополнительные поля - характеристики этой связи. (суррогатный) PK нужен хотя бы для аудита.
...
Рейтинг: 0 / 0
16.11.2007, 12:21
    #34944494
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составной и простой ключ
ChAВот с этого момента и начинаются разногласия тупоконечников с остроконечниками, известные под общей формулировкой "суррогатные vs естественные", от которых, IMHO, лучше держаться подальше, а пользоваться своим здравым смыслом, исходя из конкретной ситуации.
+1
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / составной и простой ключ / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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