powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по теории
5 сообщений из 5, страница 1 из 1
Вопрос по теории
    #37169150
mar55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица, которая реализует связь типа M:M

ID(РК)
TypeId(FK)
RequestId(FK)

пара TypeId -RequestId должна быть уникальной.

Вопрос как правильнее это сделать?
1. Убрать ID и сделать TypeId -RequestId составным ключом
2. Создать уникальный индекс для пары TypeId -RequestId, который так же не даст вставить одинаковую пару и оставить ID для возможности связывания данной таблицы еще с какой-нибудь в будущем(в случае расширения системы)

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Вопрос по теории
    #37169155
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mar55555,

Мне больше всего нравится Ваш 2-вариант. Но в принципе и 1-вариант теоретически возможно, но потом при составлении запросов не очень удобно.
...
Рейтинг: 0 / 0
Вопрос по теории
    #37169165
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я за второй вариант... В нашей СУБД вообще ИД у таблицы никак не убрать, он там есть всегда.
...
Рейтинг: 0 / 0
Вопрос по теории
    #37169393
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mar55555Есть таблица, которая реализует связь типа M:M

ID(РК)
TypeId(FK)
RequestId(FK)

пара TypeId -RequestId должна быть уникальной.

Вопрос как правильнее это сделать?
1. Убрать ID и сделать TypeId -RequestId составным ключом
2. Создать уникальный индекс для пары TypeId -RequestId, который так же не даст вставить одинаковую пару и оставить ID для возможности связывания данной таблицы еще с какой-нибудь в будущем(в случае расширения системы)

Модератор: Тема перенесена из форума "Microsoft SQL Server".

Если используется только две колонки для реализации связи M:N, то Id не создавать и создать первичный ключ по (TypeId, RequestId).

Если кроме этих колонок есть еще другие (т.е. связь превращается в objectified relation), то возможно добавление Id в качестве суррогатного первичного ключа (при этом, конечно, необходимо оставить unique constraint по (TypeId, RequestId)).

В этом случае Id может быть удобен для реализации ссылок на эту таблицу из других таблиц.
...
Рейтинг: 0 / 0
Вопрос по теории
    #37170520
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Id как первичный ключ не нужен.
Кстати подумайте над созданием дополнительного индекса по RequestId-TypeId.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по теории
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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