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

start [/forum/topic.php?fid=32&tablet=1&tid=1545414]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 434ms |

| 0 / 0 |
