powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / два FK на один PK
5 сообщений из 5, страница 1 из 1
два FK на один PK
    #35339969
SuperNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Прошу у Вас совета (понимаю, что в теории так поступить можно). Просмотрел форумы, встречались гораздо более тяжелые случаи, мне же просто надо решить - поступать так или нет. БД Access (используется только файл mdb, с которым работает клиентское приложение, на Дельфи). В дальнейшем апгрейд БД планируется под SQL Server.

Хочу посоветоваться:
В БД существуют две таблицы (никаких расчетов, выборок, сложных объединений не планируется). Первая таблица - представители заказчика, т.е. имя и фамилия (которые будут выводиться на титульном листе договора). Вторая таблица - подчиненная, где для каждого договора ставится в соответствие по коду подпись заказчика. Только на титульном листе отчета существует не одна подпись заказчика, а две (берутся они из одной таблицы подписей - подписывающий и утверждающий).

Структура таблицы представителей заказчика
id подписи (PK)
ФИО
должность

Могу ли я (из-за того, что на титульном листе отчета в разных местах существуют две подписи заказчика, но храняться они в одном простом классификаторе) сделать подчиненную таблицу для титульного листа отчета в таком виде:

id отчета (PK)
....
id подписи первого представителя заказчика (FK на id подписи главной таблицы)
id подписи второго представителя заказчика (FK на id подписи главной таблицы)

Получается, внешние ключи двух столбцов подчиненной таблицы ссылаются на один и тот же PK главной. Ограничения целостности поддерживаться будут (каскадное удаление отключено, нельзя терять атрибуты титульного листа). есть ли у Вас какие-нибудь замечания по данной связке таблиц?
спасибо. С уважением, Никоалй
...
Рейтинг: 0 / 0
два FK на один PK
    #35340030
Конечно, можно. Ничего страшного.
...
Рейтинг: 0 / 0
два FK на один PK
    #35340053
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы четко уверены, что подписей всегда будет 2 и только 2, при любых изменениях формы договора - можно сделать и так. В противном случае лучше делать связь "многие-ко-многим" таблиц договоров и представителей, с дополнительным полем "роль" (подписывающий, утверждающий, etc.)
Несколько сложнее проверки целостности ( отсекающие ситуации, когда у одного договора есть 2 "утвержающих" и т.п.), но изменения в схему договоров вносятся куда как легче.
...
Рейтинг: 0 / 0
два FK на один PK
    #35340103
SuperNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо.
...
Рейтинг: 0 / 0
два FK на один PK
    #35340323
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЕсли Вы четко уверены, что подписей всегда будет 2 и только 2, при любых изменениях формы договора - можно сделать и так. В противном случае лучше делать связь "многие-ко-многим" таблиц договоров и представителей, с дополнительным полем "роль" (подписывающий, утверждающий, etc.)
Несколько сложнее проверки целостности ( отсекающие ситуации, когда у одного договора есть 2 "утвержающих" и т.п.), но изменения в схему договоров вносятся куда как легче.
+1
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / два FK на один PK
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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