FSN#14942

svn path=/Database/trunk/; revision=9933
This commit is contained in:
Peter Feij
2008-11-28 15:06:56 +00:00
parent 54d810417e
commit dd46357de1
5 changed files with 94 additions and 38 deletions

View File

@@ -1,14 +1,15 @@
#ifdef PRJ
/* PRJ_SEQ.SRC
*
* $Revision: 5 $
* $Modtime: 22-06-06 11:46 $
* $Revision: 6 $
* $Modtime: 6-11-08 14:47 $
*/
CREATE SEQUENCE prj_s_prj_scenario_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_scenario_note_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_ruimte_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_werkplek_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_ruimteafdeling_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_perslidwerkplek_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_deel_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_selectie_key MINVALUE 1;

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_TAB.SRC
*
* $Revision: 23 $
* $Modtime: 25-06-08 17:30 $
* $Revision: 24 $
* $Modtime: 19-11-08 14:33 $
*/
#include "comsql.h"
@@ -137,6 +137,36 @@ CREATE_TABLE(prj_werkplek, 0)
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 CASCADE,
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
@@ -147,10 +177,11 @@ CREATE_TABLE(prj_perslidwerkplek, 0)
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,
// 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,
@@ -166,11 +197,11 @@ CREATE_TABLE(prj_perslidwerkplek, 0)
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, prs_afdeling_key, prj_werkplek_key,prj_perslidwerkplek_verwijder)
// 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

View File

@@ -1,7 +1,7 @@
#ifdef PRS // 13-03-96 AH
/* Maakt de sequences voor PRS
* $Revision: 14 $
* $Revision: 15 $
*
*/
@@ -9,6 +9,7 @@ CREATE SEQUENCE prs_s_prs_alluitvoerende_keys MINVALUE 1;
CREATE SEQUENCE prs_s_prs_afdeling_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_werkplek_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_perslidwerkplek_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_ruimteafdeling_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_refkenmerk_key MINVALUE 1000;
CREATE SEQUENCE prs_s_prs_kenmerk_key MINVALUE 1000;
CREATE SEQUENCE prs_s_prs_kenmerkLink_key MINVALUE 1;

View File

@@ -1,8 +1,8 @@
#ifdef PRS // 13-03-96 AH
/* PRS_TAB.SRC
* $Revision: 114 $
* $Modtime: 3-10-08 12:57 $
* $Revision: 115 $
* $Modtime: 6-11-08 13:48 $
*/
CREATE_TABLE(prs_bedrijf,0)
@@ -494,20 +494,35 @@ CREATE_TABLE(prs_perslidkostenplaats,0)
CONSTRAINT prs_c_prs_pkp_inzage CHECK(prs_perslidkostenplaats_inzage IN (0,1))
);
// Had voor hetzelfde geld prs_afdelingruimte geheten
CREATE_TABLE(prs_ruimteafdeling,0)
(
prs_ruimteafdeling_key
NUMBER(10)
CONSTRAINT prs_k_prs_ruimteafdeling_key PRIMARY KEY,
prs_afdeling_key
NUMBER(10)
NOT_NULL(prs_afdeling_key, prs_c_prs_afdeling_key3)
CONSTRAINT prs_r_prs_ra_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key),
alg_ruimte_key
NUMBER(10)
NOT_NULL(alg_ruimte_key, prs_c_alg_ruimte_key)
CONSTRAINT prs_r_alg_ruimte_key1 REFERENCES alg_ruimte(alg_ruimte_key),
prs_ruimteafdeling_bezetting
NUMBER(3)
DEFAULT 100
CONSTRAINT prs_c_prs_riumteafd_bezetting2 CHECK
(prs_ruimteafdeling_bezetting is not null AND prs_ruimteafdeling_bezetting BETWEEN 0 AND 100),
prs_ruimteafdeling_aanmaak
DATE
DEFAULT SYSDATE,
prs_ruimteafdeling_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prs_u_ruimteafdeling UNIQUE(prs_afdeling_key, alg_ruimte_key, prs_ruimteafdeling_verwijder)
);
/*
* prs_perslidwerkplek
* prs_perslidwerkplek_key
* prs_perslid_key
* prs_werkplek_key
* prs_perslidwerkplek_bezetting
* bezettingsgraad (percentage in range 0-100)
*
* 10-7-97 AH #1365, PRS_PERSLIDWERKPLEK_VERWIJDER-velden weggehaald.
* 5/26/97 AH #1255, Het VERWIJDER-veld in PRS_PERSLIDWERKPLEK mag niet meer gebruikt worden
* ivm. MUTATING TABLE-error bij cascade verwijderen van PRS_PERSLID, enz. Dit heeft
* geen gevolgen voor deze tabel.
*/
CREATE_TABLE(prs_perslidwerkplek,0)
(
prs_perslidwerkplek_key
@@ -515,10 +530,11 @@ CREATE_TABLE(prs_perslidwerkplek,0)
CONSTRAINT prs_k_prs_perslidwerkplek_key PRIMARY KEY,
prs_perslid_key
NUMBER(10)
NOT NULL(prs_perslid_key, prs_c_prs_perslid_key3)
CONSTRAINT prs_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE,
prs_afdeling_key
NUMBER(10)
CONSTRAINT prs_r_prs_pw_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key),
// prs_afdeling_key
// NUMBER(10)
// CONSTRAINT prs_r_prs_pw_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key),
prs_werkplek_key
NUMBER(10)
NOT_NULL(prs_werkplek_key, prs_c_prs_perslidwp_key)
@@ -535,11 +551,11 @@ CREATE_TABLE(prs_perslidwerkplek,0)
prs_perslidwerkplek_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prs_c_prs_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 prs_u_perslidwerkplek UNIQUE(prs_perslid_key, prs_afdeling_key, prs_werkplek_key, prs_perslidwerkplek_verwijder)
// CONSTRAINT prs_c_prs_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 prs_u_perslidwerkplek UNIQUE(prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_verwijder)
);

View File

@@ -1,7 +1,7 @@
/* CREA_TRI.SRC maakt de triggers aan voor PRS */
/* $Revision: 70 $
* $Modtime: 15-09-08 15:58 $
/* $Revision: 71 $
* $Modtime: 6-11-08 13:44 $
*/
#include "comsql.h"
@@ -242,6 +242,13 @@ BEGIN
END IF;
END;
/
CREATE_TRIGGER(prs_t_prs_ruimteafdeling_B_IU)
BEFORE INSERT OR UPDATE ON prs_ruimteafdeling
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_ruimteafdeling_key, prs_s_prs_ruimteafdeling_key);
END;
/
CREATE_TRIGGER(prs_t_prs_perslidwerkplek_B_IU)
BEFORE INSERT OR UPDATE ON prs_perslidwerkplek