, поэтому я создаю базу данных оракула для своей университетской курсовой работы в авиакомпании. Теперь у меня есть таблица с именем staff_allocations, которая распределяет персонал для рейсов в таблице Flight.
CREATE TABLE FLIGHT (
FLIGHT_ID NUMBER(11) PRIMARY KEY,
ROUTE_ID NUMBER(11) NOT NULL,
PLANE_ID NUMBER(11) NOT NULL,
PILOT_ID NUMBER(11) NOT NULL,
DEPARTURE_TIME TIMESTAMP NOT NULL,
ARRIVAL_TIME TIMESTAMP NOT NULL,
FREE_SEATS NUMBER (4)
);
CREATE TABLE STAFF_ALLOCATION (
FLIGHT_ID NUMBER(11) NOT NULL,
EMPLOYEE_ID NUMBER(11) NOT NULL
);
теперь route_id в таблице рейсов ссылается на таблицу маршрутов.
CREATE TABLE ROUTE (
ROUTE_ID NUMBER(11) PRIMARY KEY,
START_ID VARCHAR2(3) NOT NULL,
DESTINATION_ID VARCHAR2(3) NOT NULL,
TRANSIT_ID VARCHAR2(3),
IS_ACTIVE VARCHAR2(1),
DISTANCE NUMBER (8,2),
BASE_PRICE NUMBER (6,2)
);
где начальный идентификатор, конечный идентификатор и идентификатор транзита указывают на разные коды аэропортов (LHR, HAM и т. Д.)
поэтому я пытаюсь создать триггер, который до вставки в staff_allocation определит, будет ли персонал выделен для другого рейса, время которого совпадает с новым. Кроме того, он должен проверить, действительно ли персонал находится в той же стране, что и источник полета.
так что-то вроде этого:
найти, на кого уже назначен сотрудник, выполняющий рейсы.
сравнить время вылета нового рейса с существующим временем вылета рейса.
если время полета не совпадает, посмотрите, находится ли штат в стране нового start_id
Может ли кто-нибудь помочь мне с примером кода или указав мне правильное направление в том, что я должен смотреть / использовать? я впервые создаю что-то с помощью Oracle.
ура.