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

ON T.IDTalon=DT.IDTalon

WHERE DT.Ishod='Смерть'

UNION

SELECT DISTINCT IDPacient FROM

Karta K

INNER JOIN DiagnKarta DK

ON K.IDKarta=DK.IDKarta

WHERE DK.Ishod='Смерть')

))

BEGIN

RAISERROR(‘Пациент умер!',16,1)

ROLLBACK TRAN

END

Аналогично написан триггер, запрещающий ввод информации по умершему в отношение Karta (Карта выбывшего больного).

Как уже было сказано, финансирование ЛПУ осуществляется на основании приказа об оплате. Но у специалиста не должно быть возможности удалить входную документацию (талоны и карты). Для этого был написан триггер, заперщающий удаление талонов и карт, по которым было проведено финансирование:

CREATE TRIGGER StopDelTalon

ON Talon

FOR DELETE

AS

IF (EXISTS( SELECT 'true' FROM DELETED

WHERE DELETED.Date BETWEEN (SELECT MAX(BeginPer) FROM Prikas WHERE BeginPer<DELETED.Date AND IDLPU=DELETED.IDLPU)

AND (SELECT MAX(BeginPer) FROM Prikas

WHERE EndPer>DELETED.Date AND IDLPU=DELETED.IDLPU)))

BEGIN

RAISERROR('Нельзя удалить талон, так как оплата по нему уже производилась!',16,1)

ROLLBACK TRAN

END

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

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

3.2. Поддержание бизнес-логики

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