powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связь многие-ко-многим, какой выбрать PK в таблице?
11 сообщений из 11, страница 1 из 1
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540577
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здравствуйте.
необходимо создать связь многие ко многим. релизуется на трёх таблицах, но в четвёртую таблицу необходим внешний ключ на это отношение. есть два варианта:
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
как лучше сделать?
Заранее большое спасибо
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540605
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kezyaкак лучше сделать?
В основном я бы улучшил ситуацию, удачнее назвав поля :)

На "лучше" здесь нет однозначного ответа. Если Вам в четвертой таблице будут полезны ключи первых двух - делайте первый вариант, сможете писать прямые join-ы без третьей таблицы. Если не нужны - суррогатный ключ сэкономит место и время и снизит вероятность ошибки. Наконец, может быть ситуация, в которой оптимумом будет объединить третью и четвертую таблицы (расширить третью дополнительными полями).
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540634
Azamat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему бы просто не сделать так:

Table1
ID

Table2
ID

AnotherTable
ID
ID_Table1
ID_Table2
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540638
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Kezyaкак лучше сделать?
В основном я бы улучшил ситуацию, удачнее назвав поля :)

Почему мои названия Вам кажутся неудачными? :)
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540670
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AzamatПочему бы просто не сделать так:

Table1
ID

Table2
ID

AnotherTable
ID
ID_Table1
ID_Table2
Да, я уже так и сделал. В четвертой таблице будет суррогатный ключ, чуть длинне запросы (доп. объединение).
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540747
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С тчки зрения контроля изменения данных, варианты отличаются ограничениями, которые накладываются внешним ключом AnotherTable -- Table1_2. Внешний ключ на составной ключ (вариант 1) приводит к ограничению таблицей AnotherTable изменений в Table1_2. Вариант 2 от этого свободен.
Что лучше естественно зависит от приложения.
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540783
Фотография Visitor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kezya softwarer Kezyaкак лучше сделать?
В основном я бы улучшил ситуацию, удачнее назвав поля :)

Почему мои названия Вам кажутся неудачными? :)

хороший вопрос... я бы не знал как ответить

есть более менее общие принципы и подходы к наименованию таблиц и полей...

с вашим подходом вы в них не укладываетесь... кстати - схема и шаблоны которыми руководствуется разработчик при именовании объектов БД - один из первых косвенных признаков оценки качества разработки...

субуго ИМХО
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540807
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните, пожалуйста, чем неудачна данная, скажем так, "нотация" :)
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540901
Фотография Visitor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaОбъясните, пожалуйста, чем неудачна данная, скажем так, "нотация" :)


дело Ваше, конечно...
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33540919
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
Связь многие-ко-многим, какой выбрать PK в таблице?
    #33541112
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaПочему мои названия Вам кажутся неудачными?
По опыту работы с системами, использовавшими разные варианты нотаций. Не готов к пространному обсуждению, просто подкину факт для размышления: в Вашей нотации слова "ID" и "ID" означают совершенно разные вещи (например, Goods.ID и Accounts.ID) и в то же время слова "ID" и "ID_Goods" могут означать одно и то же.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связь многие-ко-многим, какой выбрать PK в таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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