id DECIMAL(6,0), id_employee DECIMAL(6,0), id_job DECIMAL(6,0), start_date_assign DATE, id_wrkc_area DECIMAL(6,0), id_boss DECIMAL(6,0), end_date_assign DATE, CONSTRAINT nn_id_employee CHECK (id_employee IS NOT NULL), CONSTRAINT nn_id_job CHECK (id_job IS NOT NULL), CONSTRAINT nn_id_wrkc_area CHECK (id_wrkc_area IS NOT NULL), CONSTRAINT fk_id_employee FOREIGN KEY (id_employee) REFERENCES employee(id), CONSTRAINT fk_id_job FOREIGN KEY (id_job) REFERENCES job(id), CONSTRAINT fk_id_wrkc_area FOREIGN KEY (id_wrkc_area) REFERENCES wrkc_area(id), CONSTRAINT ch_dates CHECK((start_date_assign IS NOT NULL) AND (end_date_assign IS NULL OR end_date_assign > start_date_assign)), CONSTRAINT pk_empl_job PRIMARY KEY (id), CONSTRAINT un_empl_job UNIQUE (id_employee, id_job, start_date_assign));
CREATE TABLE work_center (
id DECIMAL(6,0), name VARCHAR(40), CONSTRAINT nn_name CHECK (name IS NOT NULL), CONSTRAINT nn_id CHECK (id IS NOT NULL), CONSTRAINT pk_work_center PRIMARY KEY (id));
CREATE TABLE area (
id DECIMAL(6,0), description VARCHAR(40), CONSTRAINT nn_id CHECK (id IS NOT NULL), CONSTRAINT nn_description CHECK (description IS NOT NULL), CONSTRAINT pk_area PRIMARY KEY (id)); *NOTA: en empl_job 'puede' faltar alguna relación y/o restricción
AYUDA DEL MODELO RELACIONAL
wrkc_area (id, id_work_center, id_area)
on {id_work_center} es clave foránea a work_center on {id_area} es clave foránea a area empl_job (id, id_employee, id_job, start_date_assign, id_wrkc_area, id_boss, end_date_assign) on {id_employee} es clave foránea a employee on {id_job} es clave foránea a job on {id_wrkc_area} es clave foránea a wrkc_area on {id_boss} es clave foránea a empl_job
work_center (id, name)
area (id, description) job (id, description) person (id, ipf, name, surname, address, postal_code, gender, phone_number, birth_date, dead_date)