Проблема отношений 1: N в Microsoft Access - PullRequest
0 голосов
/ 31 мая 2011

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

Loan (loan_id, loan_info, ..., handling1_id, handling2_id)

Handling (handling_id, handling_info, ...)

В моей модели каждый заем связан с 0-2 обработками, но на самом делеесть два отношения 1: 1, потому что processing1_id должен отличаться от handle2_id и не может быть нескольких займов, связанных с одной и той же обработкой.

Я знаю, что правильный способ моделировать это с точки зрения базы данныхбыло бы создать в обработке FK, указывая на кредит.Но если бы я сделал это таким образом, мне каждый раз приходилось бы читать обе таблицы, даже если нет никаких обработчиков, связанных с займом.

Мое веб-приложение всегда будет отображать информацию о займе и его обработках.Сделанный таким образом, приложение будет читать таблицу Loan и будет читать таблицу Handling только в том случае, если хотя бы одно из полей processing1_id, handle2_id не равно нулю, поэтому много раз оно будет избегать чтения таблицы Handling (лучшая производительность).

Проблема в том, что когда я создаю это отношение на панели Access и задаю поля Loan processing1_id и processing2_id как уникальные (они также должны отличаться друг от друга, но я думаю, что это можно сделать только с помощью сценариев) и устанавливаюссылочной целостности, она автоматически корректирует отношения и считает, что каждая обработка должна быть связана с ссудой, поэтому я не могу вставить ее в обработку, не связав ее с ссудой.

Вот отношение, которое я устанавливаю:

Отношение 1

И когда я снова его закрываю и открываю, Access создал его:

Отношение 2

Любые советы по решению этой проблемы?

Спасибо заранее!

...