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

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

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

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

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

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


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