Files
Database/PRJ/PRJ_TAB.SRC
Erik Groener eec8c8a9cc FCLT#77060 Minimale systeem vereiste Oracle 19
svn path=/Database/trunk/; revision=60492
2023-05-23 14:53:55 +00:00

308 lines
11 KiB
Plaintext

#ifdef PRJ
/* PRJ_TAB.SRC
*
* $Revision$
* $Id$
*/
/* Om een naam te kunnen geven aan een scenario en deze later weer op te kunnen roepen */
CREATE_TABLE(prj_scenario, 0)
(
prj_scenario_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_key PRIMARY KEY,
prj_scenario_omschrijving
VARCHAR2(30),
NOT_NULL(prj_scenario_omschrijving, prj_r_prj_scenario_omschr),
mld_melding_key
NUMBER(10)
CONSTRAINT prj_r_mld_melding_key1 REFERENCES mld_melding ON DELETE CASCADE,
prj_scenario_status
VARCHAR2(30),
prj_scenario_opmerking
VARCHAR2(2000),
prj_scenario_datum
DATE,
prj_scenario_raming
NUMBER(10),
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key0 REFERENCES prs_perslid(prs_perslid_key),
prj_scenario_aanmaak
DATE
DEFAULT SYSDATE,
prj_scenario_verwerkt
DATE
);
/* Om afwijkende oppervlaktes en nieuwe ruimtes te ondersteunen; een ruimte zou ook nog kunnen
vervallen in dit scenario, dus dat moet ook kunnen. Een andere ruimtefunctie: idem. Kunnen we
ook een ander ruimtenummer aan? */
CREATE_TABLE(prj_ruimte, 0)
(
prj_ruimte_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_ruimte_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key1)
CONSTRAINT prj_r_prj_scenario_key1 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
alg_ruimte_key
NUMBER(10)
CONSTRAINT prj_r_alg_ruimte_key2 REFERENCES alg_ruimte(alg_ruimte_key),
alg_verdieping_key
NUMBER(10)
CONSTRAINT prj_r_alg_verdieping_key2 REFERENCES alg_verdieping(alg_verdieping_key),
alg_srtruimte_key
NUMBER(10)
CONSTRAINT prj_r_alg_srtruimte_key REFERENCES alg_srtruimte(alg_srtruimte_key),
prj_ruimte_nr
VARCHAR2(20)
NOT_NULL(prj_ruimte_nr, prj_c_alg_ruimte_nr),
prj_ruimte_upper_nr
VARCHAR2(20)
NOT_NULL(prj_ruimte_upper_nr, prj_c_alg_ruimte_upper_nr),
prj_ruimte_omschrijving
VARCHAR2(30),
prj_ruimte_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prj_ruimte_aanmaak, prj_c_prj_ruimte_aanmaak),
prj_ruimte_verwijder
DATE
DEFAULT NULLDATUM,
prj_ruimte_bruto_vloeropp
NUMBER(8,2)
CONSTRAINT prj_c_prj_ruimte_vloeropp CHECK(prj_ruimte_bruto_vloeropp >= 0),
prj_ruimte_omtrek
NUMBER(8,2),
CONSTRAINT prj_c_prj_ruimte_omtrek CHECK(prj_ruimte_omtrek >= 0),
prj_ruimte_inhoud
NUMBER(12,2)
CONSTRAINT prj_c_prj_ruimte_inhoud CHECK(prj_ruimte_inhoud >= 0),
prj_ruimte_opmerking
VARCHAR2(50),
CONSTRAINT prj_u_prj_ruimte_upper_nr UNIQUE(prj_scenario_key, alg_verdieping_key, prj_ruimte_upper_nr, prj_ruimte_verwijder)
);
/* Nieuwe werkplekken? Alle werkplekken van een verdieping in scenario? */
CREATE_TABLE(prj_werkplek, 0)
(
prj_werkplek_key
NUMBER(10)
CONSTRAINT prj_k_prj_werkplek_key PRIMARY KEY,
prs_werkplek_key
NUMBER(10)
CONSTRAINT prj_r_prs_werkplek_key REFERENCES prs_werkplek(prs_werkplek_key) ON DELETE CASCADE,
prj_werkplek_volgnr
NUMBER(8)
NOT_NULL(prj_werkplek_volgnr, prj_c_prj_werkplek_volgnr),
prj_werkplek_omschrijving
VARCHAR2(30),
prj_werkplek_vastopp
NUMBER(1)
CONSTRAINT prj_c_prj_werkplek_vastopp CHECK(prj_werkplek_vastopp IS NULL
OR prj_werkplek_vastopp = 1),
prj_werkplek_opp
NUMBER(8,2)
CONSTRAINT prj_c_prs_werkplek_opp CHECK(prj_werkplek_opp >= 0
OR prj_werkplek_opp IS NULL),
prj_ruimte_key
NUMBER(10)
NOT_NULL(prj_ruimte_key, prj_r_prs_prj_ruimte_key1)
CONSTRAINT prs_r_prs_prj_ruimte_key2 REFERENCES prj_ruimte(prj_ruimte_key) ON DELETE CASCADE,
prj_werkplek_dwgx
NUMBER(16,3),
prj_werkplek_dwgy
NUMBER(16,3),
prj_werkplek_dwgz
NUMBER(16,3),
prj_werkplek_dwgrotatie
NUMBER(5,1),
prj_werkplek_dwgschaal
NUMBER(5,2),
prj_werkplek_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prj_werkplek_aanmaak, prj_c_prj_werkplek_aanmaak),
prj_werkplek_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prj_u_prj_werkplek_volgnr UNIQUE(prj_ruimte_key, prj_werkplek_volgnr, prj_werkplek_verwijder)
);
CREATE_TABLE(prj_ruimteafdeling,0)
(
prj_ruimteafdeling_key
NUMBER(10)
CONSTRAINT prj_k_prs_ruimteafdeling_key PRIMARY KEY,
prs_ruimteafdeling_key
NUMBER(10)
CONSTRAINT prj_r_prs_ruimteafd_key REFERENCES prs_ruimteafdeling(prs_ruimteafdeling_key) ON DELETE SET NULL,
prs_afdeling_key
NUMBER(10)
CONSTRAINT prj_c_prs_afdeling_key3 CHECK(prs_afdeling_key IS NOT NULL)
CONSTRAINT prj_r_prs_ra_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key) ON DELETE CASCADE,
prj_ruimte_key
NUMBER(10)
CONSTRAINT prj_c_alg_ruimte_key CHECK(prj_ruimte_key IS NOT NULL)
CONSTRAINT prj_r_alg_ruimte_key1 REFERENCES prj_ruimte(prj_ruimte_key) ON DELETE CASCADE,
prj_ruimteafdeling_bezetting
NUMBER(3)
DEFAULT 100
CONSTRAINT prj_c_prs_ruimteafd_bezetting2 CHECK
(prj_ruimteafdeling_bezetting is not null AND prj_ruimteafdeling_bezetting BETWEEN 0 AND 100),
prj_ruimteafdeling_aanmaak
DATE
DEFAULT SYSDATE,
prj_ruimteafdeling_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prj_u_ruimteafdeling UNIQUE(prs_afdeling_key, prj_ruimte_key, prj_ruimteafdeling_verwijder)
);
CREATE_TABLE(prj_perslidwerkplek, 0)
(
prj_perslidwerkplek_key
NUMBER(10)
CONSTRAINT prj_k_prj_perslidwerkplek_key PRIMARY KEY,
prs_perslidwerkplek_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslidwp_key REFERENCES prs_perslidwerkplek(prs_perslidwerkplek_key) ON DELETE CASCADE,
prs_perslid_key
NUMBER(10)
NOT_NULL (prs_perslid_key, prj_c_prs_perslid_key)
CONSTRAINT prj_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE,
// prs_afdeling_key
// NUMBER(10)
// CONSTRAINT prj_r_prs_pw_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key) ON DELETE CASCADE,
prj_werkplek_key
NUMBER(10)
CONSTRAINT prj_r_prj_werkplek_key REFERENCES prj_werkplek(prj_werkplek_key) ON DELETE CASCADE,
prj_perslidwerkplek_bezetting
NUMBER(3)
DEFAULT 100
CONSTRAINT prj_c_prj_perslidwp_bezetting2 CHECK
(prj_perslidwerkplek_bezetting is not null and prj_perslidwerkplek_bezetting BETWEEN 0 AND 100),
prj_perslidwerkplek_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prj_perslidwerkplek_aanmaak, prj_c_prj_perslidwp_aanmaak),
prj_perslidwerkplek_verwijder
DATE
DEFAULT NULLDATUM,
// CONSTRAINT prj_c_prj_perslidwp_koppeling CHECK(
// (prs_perslid_key IS NULL AND prs_afdeling_key IS NOT NULL) OR
// (prs_afdeling_key IS NULL AND prs_perslid_key IS NOT NULL)
// ),
CONSTRAINT prj_u_perslidwerkplek UNIQUE(prs_perslid_key, prj_werkplek_key, prj_perslidwerkplek_verwijder)
);
/* Noot: waar in de real world met een gecombineerde key+type wordt gewerkt, hebben we hier twee aparte verwijzingen
* waarbij de ruimte_key verplicht is en de werkplek_key optioneel
*/
CREATE_TABLE(prj_deel, 0)
(
prj_deel_key
NUMBER(10)
CONSTRAINT prj_k_prj_deel_key PRIMARY KEY
, ins_deel_key
NUMBER(10)
CONSTRAINT prj_r_prj_deel_key REFERENCES ins_deel(ins_deel_key)
, ins_srtdeel_key
NUMBER(10)
NOT_NULL(ins_srtdeel_key, prj_r_deel_srtdeel_key1)
CONSTRAINT prj_r_deel_srtdeel_key2 REFERENCES ins_srtdeel
, prj_ruimte_key
NUMBER(10)
NOT_NULL(prj_ruimte_key, prj_r_prs_prj_ruimte_key2)
CONSTRAINT prs_r_prs_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key) ON DELETE CASCADE
, prj_werkplek_key
NUMBER(10)
CONSTRAINT prj_r_prj_werkplek_key2 REFERENCES prj_werkplek(prj_werkplek_key) ON DELETE CASCADE
, prj_deel_omschrijving
VARCHAR2(60)
CONSTRAINT prj_c_ins_deel_omschrijving CHECK(prj_deel_omschrijving IS NOT NULL)
, prj_deel_dwgx
NUMBER(16,3)
, prj_deel_dwgy
NUMBER(16,3)
, prj_deel_dwgz
NUMBER(16,3)
, prj_deel_dwgrotatie
NUMBER(5,1)
, prj_deel_dwgschaal
NUMBER(5,2)
, prj_deel_aanmaak
DATE
DEFAULT SYSDATE
, prj_deel_verwijder
DATE
DEFAULT NULL
);
CREATE_TABLE(prj_selectie, 0)
(
prj_selectie_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_selectie_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key2)
CONSTRAINT prj_r_prj_scenario_key2 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE,
prj_selectie_tabelnaam
VARCHAR2(128)
CONSTRAINT prj_c_prj_selectie_tabelnaam1 CHECK(prj_selectie_tabelnaam IN ('PRJ_WERKPLEK', 'PRJ_PERSLIDWERKPLEK', 'PRJ_DEEL', 'PRS_PERSLID', 'PRS_AFDELING'))
NOT_NULL(prj_selectie_tabelnaam, prj_c_prj_selectie_tabelnm2),
prj_selectie_tabelkey
NUMBER(10),
NOT_NULL(prj_selectie_tabelkey, prj_c_prj_selectie_tabelkey),
prj_selectie_aanmaak
DATE
DEFAULT SYSDATE
);
CREATE_TABLE(prj_scenario_note, 0)
(
prj_scenario_note_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_reamrk_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key6)
CONSTRAINT prj_r_prj_scenario_key6 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
prj_scenario_note_nr
NUMBER(3),
prj_scenario_note_DWGX
NUMBER(16,3),
prj_scenario_note_DWGY
NUMBER(16,3),
prj_scenario_note_omschrijving
VARCHAR2(2000),
prj_ruimte_key
NUMBER(10)
CONSTRAINT prj_r_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key) ON DELETE SET NULL,
alg_verdieping_key
NUMBER(10)
CONSTRAINT prj_r_alg_verdieping_key3 REFERENCES alg_verdieping(alg_verdieping_key) ON DELETE CASCADE,
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key6 REFERENCES prs_perslid(prs_perslid_key),
prj_scenario_note_aanmaak
DATE
DEFAULT SYSDATE
);
ALTER TABLE cad_imp_contour
ADD prj_scenario_key NUMBER(10) REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE;
REGISTERONCE('$Id$')
#endif // PRJ