Самостоятельная ссылка - много-много - PullRequest
1 голос
/ 29 ноября 2010

Просто после некоторого совета относительно этой ситуации проектирования базы данных.

Итак, у меня есть две таблицы в базе данных.

Таблица 1: Пациенты Таблица 2: Заявители

Пациенты хранят атрибуты данных о частном пациенте, поэтому информация о человеке, его / ее дне рождения, именах, состоянии здоровья и т. Д. И т. Д. Истцы - это лицо, которое платит от имени пациента, поэтому Истцом может быть сам пациент, другое лицо, предприятие (которое оплачивает производственные травмы), частный поставщик медицинских услуг, государственные органы и т. Д.

Пациенты и заявители имеют идентификаторы, которые являются внешними ключами в других таблицах, таких как счета, квитанции и т. Д. *

У одного пациента может быть несколько заявителей (более одного субъекта может платить от его имени), у каждого заявителя может быть несколько пациентов.

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

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

Какие потенциальные практические недостатки мне нужно иметь в виду с этим изменением? Помимо изменения других связанных таблиц в базе данных?

РЕДАКТИРОВАТЬ: Просто чтобы прояснить, есть уже соединительная таблица PatientClaimants, которая в основном просто сопоставить пациентов с заявителями. Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 ноября 2010

Слияние Эти две таблицы, на мой взгляд, неверны .

Пациент всегда человек.Так что это не может быть бизнес или организация.

Я считаю, что здесь у вас есть:

Address
=======
......

Person
=======
AddressId (FK)

BusinessEntity
==============
AddressId  (FK)

Patient
=======
PersonId (FK)

Claimant
========
PersonId  (FK)
BusinessEntityId  (FK)

Здесь PersonId или BusinessId один из них может быть нулевым.

0 голосов
/ 29 ноября 2010

Вы можете либо (а) вставить таблицу пересечений, которая связывает идентификаторы пациентов с идентификаторами заявителя, либо (б), как вы обсуждали, объединить их вместе, но если у вас уже есть данные, которые могут быть проблематичными.

Вы также можете настроить демографическую таблицу, которая отображает общие данные между пациентами и заявителями и ссылается на сокращенную таблицу «пациент / заявитель» - таким образом вы не нарушаете свою существующую структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...