SQL

Как реализовать данную таблицу?

Каждая категория врачебного персонала обладает характеристиками, присущими только специалистам этого профиля и по-разному участвует в связях: хирурги, стоматологи и гинекологи могут проводить операции, они же имеют такие характеристики, как число проведенных операций, число операций с летальным исходом; рентгенологи и стоматологи имеют коэффициент к зарплате за вредные условия труда, у рентгенологов и невропатологов более длительный отпуск.
YB
Yakup Bay
233
Для начала разделите конкретных специалистов и профессию специалистов. Как в языках программирования переменные от типов переменных.

У вас есть конкретные специалисты - ID, ФИО, Категория, Зарплата и что там ещё есть у всех.
Но так как специалисты разные и у каждого типа специалистов свои свойства, то к этим атрибутам нужно добавить ещё тип специалиста. Каждому значению типа нужно добавить свою конкретизирующую подтаблицу с дополнительными атрибутами. Например для хирурга будет таблица с ID, Число операций, кол-во летальных. Причём ID будет равен ID основной таблицы, отношение 1 к 1. Можно типу сопоставить не одну, а несколько конкретизирующих таблиц.

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

Аналогично нужно поступать с категориями, там такая же схема - основная таблица категорий и много конкретизирующих подтаблиц. Для связи конкретного специалиста с его категорией используют дополнительное поле в основной таблице специалистов. Так как несколько специалистов могут иметь одну категорию, то отношение 1 ко многим
Masimzhan Velyamov
Masimzhan Velyamov
11 112
Лучший ответ
Если тот или иной признак в равной степени свойственен целому классу специалистов (например, всем стоматологам), то можно создать таблицу категорий, и для каждой категории прописать ее особенности: длительность отпуска (либо прибавка к отпуску по умолчанию), коэффициент к зарплате, ..

Дальше нам нужна таблица специалистов, у каждого из которых будет ссылка на элемент из таблицы категорий.

В таблице операций каждая операция будет привязана к специалисту (одному).

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

Затем перечень специалистов можно реализовать в виде представления (VIEW) и в этом представлении считать количество операций.
MA
Munis Akobirov
95 471