292 lines
10 KiB
Plaintext
292 lines
10 KiB
Plaintext
#ifdef PRJ
|
|
/* PRJ_TAB.SRC
|
|
*
|
|
* $Revision: 16 $
|
|
* $Modtime: 12-05-06 10:10 $
|
|
*/
|
|
|
|
#include "comsql.h"
|
|
|
|
/* 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(10)
|
|
NOT_NULL(prj_ruimte_nr, prj_c_alg_ruimte_nr),
|
|
prj_ruimte_upper_nr
|
|
VARCHAR2(10)
|
|
#ifndef MS_SQL
|
|
NOT_NULL(prj_ruimte_upper_nr, prj_c_alg_ruimte_upper_nr)
|
|
#endif
|
|
,
|
|
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),
|
|
prj_werkplek_volgnr
|
|
NUMBER(3)
|
|
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_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_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),
|
|
prs_perslid_key
|
|
NUMBER(10)
|
|
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),
|
|
prj_werkplek_key
|
|
NUMBER(10)
|
|
// niet: NOT_NULL(prj_werkplek_key, prj_c_prj_perslidwp_key)
|
|
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(
|
|
/* PF: ik wil juist wel de afdeling altijd, evt redundant, gevuld is */
|
|
-- (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, prs_afdeling_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(30)
|
|
CONSTRAINT prj_c_ins_deel_omschrijving CHECK(prj_deel_omschrijving IS NOT NULL)
|
|
, prj_deel_aanmaak
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
, prj_deel_verwijder
|
|
DATE
|
|
DEFAULT NULL
|
|
);
|
|
|
|
CREATE_TABLE(prj_log, 0)
|
|
( prj_log_key
|
|
NUMBER(10) PRIMARY KEY
|
|
, prj_scenario_key
|
|
NUMBER(10)
|
|
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key5)
|
|
CONSTRAINT prj_r_prj_scenario_key5 REFERENCES prj_scenario(prj_scenario_key)
|
|
, prj_log_datum
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
, prj_log_code
|
|
VARCHAR(12) NOT NULL
|
|
, prj_log_omschrijving
|
|
VARCHAR(250)
|
|
);
|
|
|
|
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(32)
|
|
CONSTRAINT prj_c_prj_selectie_tabelnaam CHECK(prj_selectie_tabelnaam1 IN ('PRJ_WERKPLEK', 'PRJ_PERSLIDWERKPLEK', 'PRJ_DEEL', 'PRS_PERSLID', 'PRS_AFDELING'))
|
|
NOT_NULL(prj_selectie_tabelnaam2, prj_c_prj_selectie_tabelnaam),
|
|
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(10),
|
|
prj_scenario_note_DWGY
|
|
NUMBER(10),
|
|
prj_scenario_note_omschrijving
|
|
VARCHAR2(2000),
|
|
prj_ruimte_key
|
|
NUMBER(10)
|
|
CONSTRAINT prj_r_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key),
|
|
alg_verdieping_key
|
|
NUMBER(10)
|
|
CONSTRAINT prj_r_alg_verdieping_key3 REFERENCES alg_verdieping(alg_verdieping_key),
|
|
prs_perslid_key
|
|
NUMBER(10)
|
|
CONSTRAINT prj_r_prs_perslid_key6 REFERENCES prs_perslid(prs_perslid_key),
|
|
prj_scenario_note_aanmaak
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
);
|
|
|
|
CREATE TABLE prj_scenario_xml
|
|
(
|
|
prj_scenario_key
|
|
NUMBER(10)
|
|
CONSTRAINT prj_r_scenario_xml_key REFERENCES prj_scenario (prj_scenario_key) ON DELETE CASCADE,
|
|
prj_scenario_xml
|
|
LONG,
|
|
prj_scenario_xml_datum
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
NOT_NULL(prj_scenario_xml_datum,prj_c_prj_scenario_xml_datum),
|
|
prj_scenario_xml_volgnr
|
|
NUMBER
|
|
);
|
|
|
|
|
|
// Subject to discussion:
|
|
ALTER TABLE cad_imp_contour ADD prj_scenario_key NUMBER(10) REFERENCES prj_scenario(prj_scenario_key);
|
|
|
|
#endif // PRJ
|