Итак, пересмотрите свои сущности. Подумайте об этом с точки зрения того, что «у вас есть физические объекты и что они могут делать».
Начните с идентификации их всех, а затем объедините их в единое целое.
Например, персонал, доктор, врач общей практики и пациент - это «Люди» и просто делятся информацией. Есть только разные «Типы» людей, поэтому объединяйте их!
В каждом отделении есть сотрудники, поэтому у вас есть Люди,Ward и WardStaff Каждый человек может иметь адресную информацию.Человек может быть принят в палату. Лица, которые были приняты, могут лечиться несколькими докторами и иметь несколько заболеваний
Помните, что если вам нужно обновить информацию в нескольких местах, чтобы она была точной, она должна бытьконсолидированный.
Рассмотрим кардинальность между сущностями: должен ли приход иметь назначенных медсестер?медсестра всегда в палате?Может ли приход иметь ноль, одну или несколько медсестер?Может ли пациент иметь ноль одного или нескольких заболеваний?Может ли доктор иметь одного или нескольких пациентов?Доктор ограничен подопечными?У доктора тоже есть специальности?(могут ли они иметь более одного?)
Вот сущности, которые я вижу после этого:
- Ward
- WardType
- WardStaff
- Допуск
- Персона
- PersonType
- Адрес
- PatentAdmittanceAilments
- AilmentType
- TreatmentType
И вот как я вижу их связь.Перечитайте 4 страницы и посмотрите, правильно ли это выглядит.спросите, что не так, и спросите, чего не хватает.и там слишком много?
Wards
- WardID (int) PK
- Имя (varchar (10))
- WardTypeID (int)
WardStaff
- WardID (int) PK
- StaffID (Varchar (6)) PK (Unique Constraint), поскольку медсестра может работать только в 1 палате
- LeadEffective Date Показывает, когда медсестра стала ведущей прихода
- LeadNurseID (varchar (6)) FK для PersonID
Admittance
- AdmittanceID (int)PK
- PatientID (VARCHAR (6))
- WardID (Int) FK to Ward
- AdmittanceDate (дата)
- DischargeDate (дата)
Person
- PersonID (varchar (6)) PK
- PersonTypeID (Integer)
- Имя (varchar (30))
- DOB Дата (Дата)
- GPID (6,0)
- AddressID (int) FK для адреса
Адрес
- AddressID (Int) PK
- Address # (varchar (10))
- BuildingName (varchar (30))
- Unit # (varchar(10) *
- Город (Варчар (50))
- Улица (Варчар (50))
- Штат (Варчар (02))
- Страна(varchar (10))
- ZipCode (varchar (10))
PatientAdmittanceAilments
- AdmittanceID (Int) PK_1of3
- DrID(varchar (06)) FK для личности
- AilmentID (int) FK для болезни PK2of3 Необходимо создать триггер для
- , чтобы обеспечить соответствие compantID
- AilmentAdditional (varchar (40)) не перекрывает DTS / DTE
- TreatmentID (int) FK для обработки
- TreatmentAdditional (varchar (40))
- DTS (Дата) PK3of3
- DTE (Дата)
PersonType
- PersonTypeID (Int) PK
- Описание (Varchar (30)) (Примеры: Персонал, Пациент, Dr, GP)
WardType
- WardTypeID (int) PK
- Описание (varchar (20)) (Примеры: ортопедические, гериатрические ...)
AilmentType
- AilmentTypeID (int) PK
- Описание (varchar (40))
Обработки
- TreatmentTypeID (int) PK
- Описание (varchar (40))