2016-12-21 8 views
0

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

**Patient** 
Id 
FirstName 
LastName 
DateOfBirth 
Gender 
Phone 
Email 
Address 
City 

**Apppointment** 


    Id 
    AppointmentTypeId 
    Date 
    Time 
    Notes 
    PatientId 
    PractionersId 

AppointmentType Id Имя

Практикующий

Id 
FirstName 
LastName 
PractionerTypeId 

PractionerType

Id 
PractionerType 

ответ

0

Если вы собираетесь использовать схему звездочек, вы можете перенести заметки из таблицы «Назначение», поскольку это выглядит как ваша таблица «факт». Если у вас есть массивные текстовые строки, это может вызвать проблемы с производительностью для вас в будущем, так как любой мыслимый запрос должен пройти через эту таблицу. Конечно, зависит от того, насколько большой он получит. Some tips on star schemas here

+0

Hi JIm, если я перемещаю примечания, то где он должен находиться. Не могли бы вы разместить пример схемы звезды в этом случае. Я прошел через ссылку, которую вы поделили, но не имеет для меня никакого смысла на этом этапе. Может быть, пример того, как это будет сделано, даст мне лучшее понимание. – Tom

+0

Ну, как и у вас есть тип встречи на другом столе, вы можете иметь таблицу подробных сведений о встрече с примечаниями. http://datawarehouse4u.info/Data-warehouse-schema-architecture-star-schema.html может быть лучшим сводкой звездной схемы. – Jim

0

Вам не хватает таблицы Практик, доступной по часам.

PractitionerAvailableHours стол

  • PractitionerId
  • AvailableDate
  • AvailableHours

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

+0

Должно ли оно быть доступным по часам или доступному времени. Какой тип данных должен быть. – Tom

+0

Это зависит от ваших потребностей. Но вы можете использовать Time (или временную часть datetime) и иметь столько строк в этой таблице, сколько доступных слотов PractitionerHas. Вы должны определить слоты так, как вы считаете нужным, хотя достаточно 15 минут или 30 минут. Это будет частью вашего пользовательского интерфейса. В БД у вас будет одна строка для каждого доступного слота, а в Назначениях должно быть как можно больше слотов. –