|
|
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте. необходимо создать связь многие ко многим. релизуется на трёх таблицах, но в четвёртую таблицу необходим внешний ключ на это отношение. есть два варианта: 1. в связующей таблице первичный ключ сделать составным из внешних ключей на исходные таблицы, соответственно в четвёртую таблицу тоже нужны будут эти два значения. Вот так: Table1 ID Table2 ID Table1_2 ID_Table1 ID_Table2 AnotherTable ID ID_Table1 ID_Table2 2. в связующей таблице первичный ключ сделать суррогатным(identity) и соответственно в четвёртой таблице будет всего одно поле. Вот так: Table1 ID Table2 ID Table1_2 ID ID_Table1 ID_Table2 AnotherTable ID ID_Table1_2 как лучше сделать? Заранее большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 12:54 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
Kezyaкак лучше сделать? В основном я бы улучшил ситуацию, удачнее назвав поля :) На "лучше" здесь нет однозначного ответа. Если Вам в четвертой таблице будут полезны ключи первых двух - делайте первый вариант, сможете писать прямые join-ы без третьей таблицы. Если не нужны - суррогатный ключ сэкономит место и время и снизит вероятность ошибки. Наконец, может быть ситуация, в которой оптимумом будет объединить третью и четвертую таблицы (расширить третью дополнительными полями). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:01 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
Почему бы просто не сделать так: Table1 ID Table2 ID AnotherTable ID ID_Table1 ID_Table2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:09 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
softwarer Kezyaкак лучше сделать? В основном я бы улучшил ситуацию, удачнее назвав поля :) Почему мои названия Вам кажутся неудачными? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:10 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
AzamatПочему бы просто не сделать так: Table1 ID Table2 ID AnotherTable ID ID_Table1 ID_Table2 Да, я уже так и сделал. В четвертой таблице будет суррогатный ключ, чуть длинне запросы (доп. объединение). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:18 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
С тчки зрения контроля изменения данных, варианты отличаются ограничениями, которые накладываются внешним ключом AnotherTable -- Table1_2. Внешний ключ на составной ключ (вариант 1) приводит к ограничению таблицей AnotherTable изменений в Table1_2. Вариант 2 от этого свободен. Что лучше естественно зависит от приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:34 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
Kezya softwarer Kezyaкак лучше сделать? В основном я бы улучшил ситуацию, удачнее назвав поля :) Почему мои названия Вам кажутся неудачными? :) хороший вопрос... я бы не знал как ответить есть более менее общие принципы и подходы к наименованию таблиц и полей... с вашим подходом вы в них не укладываетесь... кстати - схема и шаблоны которыми руководствуется разработчик при именовании объектов БД - один из первых косвенных признаков оценки качества разработки... субуго ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:42 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
Объясните, пожалуйста, чем неудачна данная, скажем так, "нотация" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:48 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 14:08 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 14:12 |
|
||
|
Связь многие-ко-многим, какой выбрать PK в таблице?
|
|||
|---|---|---|---|
|
#18+
KezyaПочему мои названия Вам кажутся неудачными? По опыту работы с системами, использовавшими разные варианты нотаций. Не готов к пространному обсуждению, просто подкину факт для размышления: в Вашей нотации слова "ID" и "ID" означают совершенно разные вещи (например, Goods.ID и Accounts.ID) и в то же время слова "ID" и "ID_Goods" могут означать одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33540634&tid=1545414]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
407ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 692ms |

| 0 / 0 |
