Я знаю, что многие скажут, что такой вопрос был опубликован ранее, и я должен проверить. Тем не менее, я сделал, и я не могу связать, и именно поэтому я публикую что-то новое.
В настоящее время у меня есть таблицы ниже:
create table patient
(
patientno varchar2(10) primary key,
firstname varchar2(50) not null,
lastname varchar2(50) not null,
address varchar2(1000) not null,
registereddate date not null,
waitinglistdate date,
expectedstay number(2),
datewarded date,
expectedleave date,
dateleft date
)
create table ward
(
wardno number(4) primary key,
wardname varchar2(50) not null,
location varchar2(50) not null,
numberofbed number(2) not null,
);
create table bed
(
bedno number(3) not null,
patientno varchar2(10) not null,
wardno number(4) not null,
bed_occupieddate date not null,
dateleft date,
constraint bed_pk key primary key (bedno, bed_occupieddate),
constraint bedwardnoFK foreign key (wardno) references ward(wardno),
constraint patientbedFK foreign key (patientno) references patient(patientno)
);
Мне нужно решить проблему : Пациент может быть переведен в палату только в том случае, если в палате имеются кровати
Таблица NumberOfBed в палате - это общее количество кроватей в палате. Например, в приходе А есть 20 коек.
Так что я считаю, что это код, который мне нужен где-то в триггере или функции: IF (ward.numberofbed - [count (bed.wardno) где bed.dateleft IS NULL])! = 0
Если бы это была функция, как я мог бы добавить оператор ALTER TABLE ADD CONSTRAINT для таблицы BED? Таким образом, в основном, если все кровати в палате заняты (dateleft = NULL), новые пациенты не могут быть вставлены в стол BED.
Заранее спасибо!