Структура объектов и реляционных связей проекта, положенного в основу данной лабораторной работы, имеет следующий вид:
Рисунок 102 - Структура объектов и связей документа «Доверенность»
Справочник «Физических лиц»:
CREATE TABLE s_fiz_lic (kod NUMBER(7,0) NOT NULL, fam VARCHAR2(30), im VARCHAR2(25), otch VARCHAR2(25), p_vidan VARCHAR2(80), p_ser_nom VARCHAR2(20)) / ALTER TABLE s_fiz_lic ADD CONSTRAINT pk_s_fiz_lic PRIMARY KEY (kod) USING INDEX / |
Справочник «Организаций»:
CREATE TABLE s_org (kod NUMBER(7,0) NOT NULL, naimen VARCHAR2(50), inn VARCHAR2(10)) / ALTER TABLE s_org ADD CONSTRAINT pk_s_org PRIMARY KEY (kod) USING INDEX / |
Справочник «Наименований товаров»:
CREATE TABLE s_naimen (kod NUMBER(7,0) NOT NULL, naimen VARCHAR2(50)) / ALTER TABLE s_naimen ADD CONSTRAINT pk_s_naimen PRIMARY KEY (kod) USING INDEX / |
Шапка документа «Доверенность2»:
CREATE TABLE d_dover2 (kod NUMBER(10,0) NOT NULL, ndoc NUMBER(6,0), datav DATE, data_deis DATE, kod_fiz_lic NUMBER(7,0), kod_org NUMBER(7,0)) / ALTER TABLE d_dover2 ADD CONSTRAINT pk_d_dover2 PRIMARY KEY (kod) USING INDEX / |
Тело документа «Доверенность2» (список наименований товаров):
CREATE TABLE d_dover_sp_naimen2 (kod NUMBER(8,0) NOT NULL, kod_d_dover2 NUMBER(10,0) NOT NULL, kod_s_naimen NUMBER(7,0), kol NUMBER(5,3), ed_izm VARCHAR2(8)) / ALTER TABLE d_dover_sp_naimen2 ADD CONSTRAINT pk_d_dover_sp2 PRIMARY KEY (kod) USING INDEX / |
Создание реляционных связей между таблицами:
ALTER TABLE d_dover2 ADD CONSTRAINT fk1_d_dover2 FOREIGN KEY (kod_fiz_lic) REFERENCES s_fiz_lic (kod) / ALTER TABLE d_dover2 ADD CONSTRAINT fk2_d_dover2 FOREIGN KEY (kod_org) REFERENCES s_org (kod) / ALTER TABLE d_dover_sp_naimen2 ADD CONSTRAINT fk_d_dover_sp2 FOREIGN KEY (kod_d_dover2) REFERENCES d_dover2 (kod) / ALTER TABLE d_dover_sp_naimen2 ADD CONSTRAINT fk2_d_dover_sp2 FOREIGN KEY (kod_s_naimen) REFERENCES s_naimen (kod) / |
Создание последовательностей в SQL Plus
Для поддержки автоматической уникальности первичных ключей при работе с формой необходимо в БД создать две последовательности:
CREATE SEQUENCE kod_d_dover_sp2 INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 99999999 NOCYCLE NOORDER NOCACHE / CREATE SEQUENCE kod_d_dover2 INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 9999999999 NOCYCLE NOORDER NOCACHE / |