Курсовая работа: Разработка физической модели базы данных Учёт затрат на медицинские услуги

GROUP BY D.IDTalon)<>1)

BEGIN

RAISERROR('Нельзя иметь больше одного основного диагноза в талоне!',16,1)

ROLLBACK TRAN

END

Теперь мы при добавлении или редактировании отношения DiagnTalon (Диагноз в талоне) SQL Server будет следить за тем, чтобы основной диагноз для определённого талона был только один. Точно так же реализовано правило, согласно которому в карте выбывшего больного должен быть только один основной диагноз.

При создании базы данных мы столкнулись также со следующей проблемой. Отношение Talon (Статистический талон) имеет атрибуты IDLPU, IDVrach, IDPacient, IDType, которые представляют собой внешние ключи на отношения LPU, Vrach, Type. Мы можем внести в базу данных информацию, согласно которой, например, врач А лечил в ЛПУ B в качестве специалиста C, но при этом врач А может не быть врачом ЛПУ B, и не быть обладать специальностью C. Чтобы исправить данный недостаток, были написаны соответствующие триггеры, приведём пример одного из них.

ALTER TRIGGER TalonVrachLPU

ON Talon

FOR INSERT, UPDATE

AS

IF (EXISTS(SELECT 'true' FROM INSERTED

WHERE INSERTED.IDVrach NOT IN (SELECT IDVrach FROM

Vrach

WHERE IDLPU=INSERTED.IDLPU)

))

BEGIN

RAISERROR('Такого врача нет в выбранном ЛПУ!',16,1)

ROLLBACK TRAN

END

Аналогичным образом написаны триггеры, запрещающие добавление или редактирование отношений Talon и Karta таким образом, чтобы информация в базе данных стала противоречивой (врач не принадлежащий данному ЛПУ или не обладающий данной специальностью).

В ходе анализа предметной области выяснилось, что нельзя вводить документацию по пациенту, который уже умер. Ведь умершие не могут посещать врачей или лежать в больнице. Для предотвращения ввода такой информации был написан триггер, запрещающий ввод данных по умершему пациенту в отношение Talon (Статистический талон), его сценарий приведён ниже:

CREATE TRIGGER StopSmert

ON Talon

FOR INSERT

AS

IF (EXISTS(SELECT 'true' FROM INSERTED

WHERE INSERTED.IDPacient IN (SELECT DISTINCT IDPacient FROM

Talon T

К-во Просмотров: 303
Бесплатно скачать Курсовая работа: Разработка физической модели базы данных Учёт затрат на медицинские услуги