|
|
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
Если мне нужно между 2-я таблицами сделать связь многие ко многим, то я создаю третью таблицу и заношу туда внешние ключи на первые две таблицы. А вопрос по поводу того какой первичный ключ использовать. Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ? Чем это так плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 21:16 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
> Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ? Кто не рекомендует, можно поинтересоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 21:24 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ? Кто не рекомендует, можно поинтересоваться? Ну не то что бы не рекомендуют, но во всех книгах, которые я читал, пишут, что нужно использовать составной ключ и не объясняют почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 21:31 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
В печку такие книжки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 21:59 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
Не скажу сейчас конкретные ссылки на книжки, но вроде бы все обычно формально назначают первичный ключ в новом столбце. То есть в связующей таблице получается 3 столбца: 2 внешних ключа и простой (суррогатный) PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 22:44 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
DmitryTSЕсли мне нужно между 2-я таблицами сделать связь многие ко многим, то я создаю третью таблицу и заношу туда внешние ключи на первые две таблицы. А вопрос по поводу того какой первичный ключ использовать. Почему не рекомендуют в связующей таблице создавать отдельный первичный ключ? Чем это так плохо?Не совсем понятен смысл вопроса. Суть первичного ключа в однозначной идентификации строки, и не играет роли, сколько полей он содержит, т.е., он вполне может быть и составным. Введение дополнительных атрибутов для выполнения той же задачи(идентификации) особого смысла не имеет, по крайней мере, с логической точки зрения. В вашем случае, если правильно понял, важен лишь сам факт наличия связи между конкретными экземплярами сущностей. С физической же точки зрения, если этот факт может быть использован где-то еще, то иногда имеет смысл добавлять отдельный атрибут типа автоприращения (или любого другого генератора уникальных значений), обычно, с целью уменьшения объема ключа, который будет мигрировать в подобную сущность, да и запросы иногда будет писать проще, меньше придется перечислять полей в условиях слияний, хотя это не всегда оправдано и может привести к излишним вычислениям, но уже сервером. Таким образом, введение дополнительного абстрактного идентификатора с формальной точки зрения является излишеством. Вот с этого момента и начинаются разногласия тупоконечников с остроконечниками, известные под общей формулировкой "суррогатные vs естественные", от которых, IMHO, лучше держаться подальше, а пользоваться своим здравым смыслом, исходя из конкретной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 00:54 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
DmitryTS пишет: > А вопрос по поводу того какой первичный ключ использовать. Почему не > рекомендуют в связующей таблице создавать отдельный первичный ключ? Чем > это так плохо? Потому что это попросту лишние данные. Они занимают место. Если ссылок на таблицу связи нет, они не нужны. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 01:17 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
DmitryTS пишет: > Ну не то что бы не рекомендуют, но во всех книгах, которые я читал, > пишут, что нужно использовать составной ключ и не объясняют почему. Да потому что лишних полей добавлять никогда не нужно, и сложно требовать от автора что он еще должен что-то по этому поводу объяснять. В любую таблицу можно добавить любое число лишних полей, зачем же постоянно явно объяснять в каждом случае что этого делать не надо ? Бритва Оккама Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 01:23 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
Baykin IlyaТо есть в связующей таблице получается 3 столбца: 2 внешних ключа и простой (суррогатный) PK. + дополнительные поля - характеристики этой связи. (суррогатный) PK нужен хотя бы для аудита. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 09:46 |
|
||
|
составной и простой ключ
|
|||
|---|---|---|---|
|
#18+
ChAВот с этого момента и начинаются разногласия тупоконечников с остроконечниками, известные под общей формулировкой "суррогатные vs естественные", от которых, IMHO, лучше держаться подальше, а пользоваться своим здравым смыслом, исходя из конкретной ситуации. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 12:21 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34943514&tid=1544191]: |
0ms |
get settings: |
10ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 531ms |

| 0 / 0 |
