Oracle SQL Developer - Как добавить ограничения на диаграмму er
Мне нужно создать ER-диаграмму с помощью Oracle-разработчика Oracle, я ее создал, но я пытаюсь добавить ограничения, есть ли у кого-нибудь совет, как это сделать?
Я разрабатываю модель данных больницы. Спасибо
1 ответ
Поэтому пересмотрите свои сущности. Подумайте об этом с точки зрения того, что "у вас есть физические объекты и что могут делать эти объекты".
Начните с определения их всех, а затем объединяйте их.
Например, персонал, доктор, терапевт и пациент - все это "люди" и просто делятся информацией. Есть просто разные "типы" людей, так что объединяйте их!
В каждом приходе есть сотрудники, поэтому у вас есть люди, приход и уезд. Каждый человек может иметь адресную информацию. Человек может быть принят в палату. Лица, которые были приняты, могут лечиться несколькими докторами и иметь несколько заболеваний.
Помните, что если вам нужно обновить информацию в нескольких местах, чтобы обеспечить ее точность, ее необходимо консолидировать.
Рассмотрим кардинальность между сущностями: должен ли приход иметь назначенных медсестер? медсестра всегда в палате? Может ли приход иметь ноль, одну или несколько медсестер? Может ли пациент иметь ноль одного или нескольких заболеваний? Может ли доктор иметь одного или нескольких пациентов? Доктор ограничен подопечными? У доктора тоже есть специальности? (могут ли они иметь более одного?)
Вот сущности, которые я вижу после этого:
- подопечный
- 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 палате
- Дата вступления в силу Показывает, когда медсестра стала руководителем прихода
- LeadNurseID (varchar(6)) FK для PersonID
впуск
- AdmittanceID (int) PK
- PatientID (VARCHAR (6))
- WardID (Int) FK для Ward
- AdmittanceDate (дата)
- DischargeDate (дата)
Человек
- PersonID (varchar(6)) ПК
- PersonTypeID (целое число)
- Имя (varchar(30))
- Дата рождения (Дата)
- GPID (6,0)
- AddressID (int) FK to Address
Адрес
- AddressID (Int) PK
- Адрес № (varchar(10))
- BuildingName (varchar(30))
- Блок № (varchar(10))
- Город (Варчар (50))
- Улица (Варчар (50))
- Государство (varchar(02))
- Кантри (варчар (10))
- ZipCode (varchar(10))
PatientAdmittanceAilments
- AdmittanceID (Int) PK_1of3
- DrID (varchar (06)) FK для человека
- AilmentID (int) FK to Ailment PK2of3 Триггер не нужно создавать для
- обеспечить соответствие
- AilmentAdditional(varchar(40)) не перекрывает DTS / DTE
- TreatmentID (int) FK для лечения
- TreatmentAdditional (VARCHAR (40))
- DTS (Дата) PK3of3
- DTE (Дата)
PersonType
- PersonTypeID (Int) PK
- Описание (Varchar(30)) (Примеры: персонал, пациент, доктор, врач общей практики)
WardType
- WardTypeID (int) PK
- Описание (varchar(20)) (Примеры: ортопедические, гериатрические...)
AilmentType
- AilmentTypeID (int) PK
- Описание (varchar (40))
Лечение
- TreatmentTypeID (int) PK
- Описание (varchar (40))