GONJY_MONJY
@GONJY_MONJY
В поисках новых горизонтов

Есть схема БД для медицинского центра. Реализованы ли здесь первые три нормальные формы?

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

645969f3429be005327943.png

Вопросы:
  • Приведена ли эта база данных к трём нормальным формам
  • Правильно ли расставлены связи один к одному, один ко многим


P.S.
Если у вас есть на примете хороший ресурс, где хорошо объяснены значения стрелок, соединяющие сущности в диаграмме, то буду очень признателен, если поделитесь им.

Таблицы pharmacy и suppliers добавлены только для реализации просмотра лекарств в аптеке центра, ничего более. Просто фича для фронтенда.

Если качество изображения удручает, то вот ссылка на схему: ссылка
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
(я не только корректность схемы тут рассматриваю)
Вроде всё ок, только видно некоторое дублирование данных в пациенте и сотруднике.

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

Можно так достаточно интересную связь сделать, когда один и тот же человек является одновременно и сотрудником и пациентом. (И например ввести запрет на выписывание лекарств самому себе)

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

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

Возможно, есть смысл ввести ещё справочник действующих веществ, чтобы можно было быстрее искать конкретные лекарства по этому действующему веществу.

Можно попытаться формализовать планы лечения - но это отдельная очень большая задача.

К таблице с адресами ещё есть смысл добавить номер ФИАС/КЛАДР/ГАР (уже запутался в этих системах) - это распространённая практика в России.

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

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

Не совсем понятно, что скрывается за ролями, и почему у пользователя не может быть нескольких ролей.

Также не понятно, почему позиция жёстко привязана к отделу.
Кажется, есть смысл ввести отдельно таблицу для позиций (в оргструктуре) и должностей (специализации и грейды врачей)
+ Часто оргструктуры имеют древовидную форму с отделами/подотделами/филиалами
+ Часто есть деление на юридическую структуру (которая записывается во всяких юридически значимых документах) и ресурсную оргструктуры, которая описывает реальный бизнес-процесс.

Вместо флага is_doctor в позиции следует всётаки какой-нибудь enum сделать, ибо потом захочется делить сотрудников на более чем две категории.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы