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))
Другие вопросы по тегам