|
|
|
два FK на один PK
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Прошу у Вас совета (понимаю, что в теории так поступить можно). Просмотрел форумы, встречались гораздо более тяжелые случаи, мне же просто надо решить - поступать так или нет. БД Access (используется только файл mdb, с которым работает клиентское приложение, на Дельфи). В дальнейшем апгрейд БД планируется под SQL Server. Хочу посоветоваться: В БД существуют две таблицы (никаких расчетов, выборок, сложных объединений не планируется). Первая таблица - представители заказчика, т.е. имя и фамилия (которые будут выводиться на титульном листе договора). Вторая таблица - подчиненная, где для каждого договора ставится в соответствие по коду подпись заказчика. Только на титульном листе отчета существует не одна подпись заказчика, а две (берутся они из одной таблицы подписей - подписывающий и утверждающий). Структура таблицы представителей заказчика id подписи (PK) ФИО должность Могу ли я (из-за того, что на титульном листе отчета в разных местах существуют две подписи заказчика, но храняться они в одном простом классификаторе) сделать подчиненную таблицу для титульного листа отчета в таком виде: id отчета (PK) .... id подписи первого представителя заказчика (FK на id подписи главной таблицы) id подписи второго представителя заказчика (FK на id подписи главной таблицы) Получается, внешние ключи двух столбцов подчиненной таблицы ссылаются на один и тот же PK главной. Ограничения целостности поддерживаться будут (каскадное удаление отключено, нельзя терять атрибуты титульного листа). есть ли у Вас какие-нибудь замечания по данной связке таблиц? спасибо. С уважением, Никоалй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 13:17 |
|
||
|
два FK на один PK
|
|||
|---|---|---|---|
|
#18+
Конечно, можно. Ничего страшного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 13:31 |
|
||
|
два FK на один PK
|
|||
|---|---|---|---|
|
#18+
Если Вы четко уверены, что подписей всегда будет 2 и только 2, при любых изменениях формы договора - можно сделать и так. В противном случае лучше делать связь "многие-ко-многим" таблиц договоров и представителей, с дополнительным полем "роль" (подписывающий, утверждающий, etc.) Несколько сложнее проверки целостности ( отсекающие ситуации, когда у одного договора есть 2 "утвержающих" и т.п.), но изменения в схему договоров вносятся куда как легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 13:36 |
|
||
|
два FK на один PK
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЕсли Вы четко уверены, что подписей всегда будет 2 и только 2, при любых изменениях формы договора - можно сделать и так. В противном случае лучше делать связь "многие-ко-многим" таблиц договоров и представителей, с дополнительным полем "роль" (подписывающий, утверждающий, etc.) Несколько сложнее проверки целостности ( отсекающие ситуации, когда у одного договора есть 2 "утвержающих" и т.п.), но изменения в схему договоров вносятся куда как легче. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=103&tid=1543851]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 398ms |

| 0 / 0 |
