/* ALG_TAB.SRC
 * $Revision$
 * $Id$
 */

CREATE_TABLE(alg_regio,0)
(
    alg_regio_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_regio_key PRIMARY KEY,
    alg_regio_omschrijving
        VARCHAR2(30)
        NOT_NULL(alg_regio_omschrijving, alg_c_alg_regio_omschrijving),
    alg_regio_upper
        VARCHAR2(30)
        NOT_NULL(alg_regio_upper, alg_c_alg_regio_upper),
    alg_regio_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_regio_aanmaak NOT NULL,
    alg_regio_verwijder
        DATE
        DEFAULT NULLDATUM,
    CONSTRAINT alg_u_alg_regio_upper UNIQUE(alg_regio_upper, alg_regio_verwijder)
);

CREATE_TABLE(alg_district,0)
(
    alg_district_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_district_key PRIMARY KEY,
    alg_regio_key
        NUMBER(10)
        CONSTRAINT alg_r_alg_regio_key REFERENCES alg_regio(alg_regio_key),
    alg_district_omschrijving
        VARCHAR2(30)
        NOT_NULL(alg_district_omschrijving, alg_c_alg_district_omschr),
    alg_district_upper
        VARCHAR2(30)
        NOT_NULL(alg_district_upper, alg_c_alg_district_upper),
    alg_district_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_district_aanmaak NOT NULL,
    alg_district_verwijder
        DATE
        DEFAULT NULLDATUM,
    CONSTRAINT alg_u_alg_district_upper UNIQUE(alg_regio_key, alg_district_upper,alg_district_verwijder)
);

CREATE_TABLE(alg_locatie,0)
(
    alg_locatie_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_locatie_key PRIMARY KEY,
    alg_district_key
        NUMBER(10)
        CONSTRAINT alg_r_alg_district_key REFERENCES alg_district(alg_district_key),
    alg_locatie_code
        VARCHAR2(10)
        NOT_NULL(alg_locatie_code, alg_c_alg_locatie_code),
    alg_locatie_omschrijving
        VARCHAR2(60)
        NOT_NULL(alg_locatie_omschrijving, alg_c_alg_locatie_omschrijving),
    alg_locatie_upper
        VARCHAR2(60)
        NOT_NULL(alg_locatie_upper, alg_c_alg_locatie_upper),
    alg_locatie_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_locatie_aanmaak NOT NULL,
    alg_locatie_verwijder
        DATE
        DEFAULT NULLDATUM,
    alg_locatie_adres
        VARCHAR2(50),
    alg_locatie_postcode
        VARCHAR2(12),
    alg_locatie_plaats
        VARCHAR2(30),
    alg_locatie_land
        VARCHAR2(30),
    alg_locatie_post_adres
        VARCHAR2(50),
    alg_locatie_post_postcode
        VARCHAR2(12),
    alg_locatie_post_plaats
        VARCHAR2(30),
    alg_locatie_post_land
        VARCHAR2(30),
    alg_locatie_tekening     /* references the drawingfile */
        VARCHAR2(32),
    alg_locatie_verantw
        VARCHAR2(30),
    alg_locatie_verantw_tel
        VARCHAR2(15),
    alg_locatie_email        /* might be used as sender */
        VARCHAR2(200),
    alg_locatie_x
        NUMBER(16,6),
    alg_locatie_y
        NUMBER(16,6),
    alg_locatie_mjb_score1
        NUMBER(6,2),
-- in MLD_TAB.SRC:
--    mld_dienstniveau_key
--        NUMBER(10)
--        REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL,
    CONSTRAINT alg_u_alg_locatie_code UNIQUE(alg_district_key, alg_locatie_code, alg_locatie_verwijder),
    CONSTRAINT alg_u_alg_locatie_upper UNIQUE(alg_district_key, alg_locatie_upper, alg_locatie_verwijder)
);

CREATE_TABLE(alg_srtterreinsector,0)
(
    alg_srtterreinsector_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_srtterreinsector_key PRIMARY KEY,
    alg_srtterreinsec_omschrijving
        VARCHAR2(30)
        CONSTRAINT alg_c_alg_srtterreinsec_omschr CHECK(alg_srtterreinsec_omschrijving IS NOT NULL),
    alg_srtterreinsector_upper
        VARCHAR2(30)
        CONSTRAINT alg_c_alg_srtterreinsec_upper CHECK(alg_srtterreinsector_upper IS NOT NULL),
    alg_srtterreinsector_prijs
        NUMBER(11,5),
    alg_srtterreinsector_prijs2  /* extra kosten, bv servicekosten */
        NUMBER(11,5),
    alg_srtterreinsector_prijs3  /* extra kosten, bv servicekosten */
        NUMBER(11,5),
    alg_srtterreinsector_prijs4  /* extra kosten, bv servicekosten */
        NUMBER(11,5),
    alg_srtterreinsector_prijs5  /* extra kosten, bv servicekosten */
        NUMBER(11,5),
    alg_srtterreinsector_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_srtterrein_aanmaak NOT NULL,
    alg_srtterreinsector_verwijder
        DATE
        DEFAULT NULL,
    CONSTRAINT alg_u_alg_srtterreinsec_upper UNIQUE(alg_srtterreinsector_upper, alg_srtterreinsector_verwijder),
    prs_verhuurbaar NUMBER(1),
    alg_srtterreinsector_code VARCHAR2(10)
);

CREATE_TABLE(alg_terreinsector,0)
(
    alg_terreinsector_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_terreinsector_key PRIMARY KEY,
    alg_locatie_key
        NUMBER(10)
        NOT_NULL(alg_locatie_key, alg_r_alg_locatie_key1)
        CONSTRAINT alg_r_alg_locatie_key2 REFERENCES alg_locatie(alg_locatie_key),
    alg_terreinsector_omschrijving
        VARCHAR2(50)
        NOT_NULL(alg_terreinsector_omschrijving, alg_c_alg_terreinsector_omschr),
    alg_terreinsector_code
        VARCHAR2(12)
        NOT_NULL(alg_terreinsector_code, alg_c_alg_terreinsector_code),
    alg_terreinsector_naam
        VARCHAR2(30)
        NOT_NULL(alg_terreinsector_naam, alg_c_alg_terreinsector_naam),
    alg_terreinsector_upper
        VARCHAR2(30)
        NOT_NULL(alg_terreinsector_upper, alg_c_alg_terreinsector_upper),
    alg_srtterreinsector_key NUMBER(10)
        CONSTRAINT alg_r_alg_srtterreinsector_key
        REFERENCES alg_srtterreinsector(alg_srtterreinsector_key),
    alg_terreinsector_oppervlak
        NUMBER(12,2)
        CONSTRAINT alg_c_alg_terreinsector_opp CHECK(alg_terreinsector_oppervlak >= 0),
    alg_terreinsector_omtrek
        NUMBER(12,2)
        CONSTRAINT alg_c_alg_terreinsector_omtrek CHECK(alg_terreinsector_omtrek >= 0),
    alg_terreinsector_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_terreinsector_aanm NOT NULL,
    alg_terreinsector_verwijder
        DATE
        DEFAULT NULLDATUM,
    alg_terreinsector_ordernr
        VARCHAR2(30),
    alg_terreinsector_getekend
        DATE
        DEFAULT NULLDATUM,
-- in PRS_TAB.SRC:
--    prs_kostenplaats_key
--        NUMBER(10)
--        CONSTRAINT alg_r_prs_afdeling_kostenp1 REFERENCES prs_kostenplaats(prs_kostenplaats_key),
--    prs_afdeling_key
--        NUMBER(10)
--        CONSTRAINT alg_r_prs_afdeling1 REFERENCES prs_afdeling(prs_afdeling_key),
    CONSTRAINT alg_u_alg_terreinsector_upper UNIQUE(alg_locatie_key, alg_terreinsector_upper, alg_terreinsector_verwijder)
);

CREATE_TABLE(alg_srtgebouw,0)
(
    alg_srtgebouw_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_srtgebouw_key PRIMARY KEY,
    alg_srtgebouw_omschrijving
        VARCHAR2(30)
        NOT_NULL(alg_srtgebouw_omschrijving, alg_c_alg_srtgebouw_omschr),
    alg_srtgebouw_upper
        VARCHAR2(30)
        NOT_NULL(alg_srtgebouw_upper, alg_c_alg_srtgebouw_upper),
    alg_srtgebouw_passief
        NUMBER(1)
        CONSTRAINT alg_c_alg_srtgebouw_passief CHECK(alg_srtgebouw_passief IS NULL
                                           OR alg_srtgebouw_passief = 1),
    alg_srtgebouw_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_srtgebouw_aanmaak NOT NULL,
    alg_srtgebouw_verwijder
        DATE
        DEFAULT NULLDATUM,
    CONSTRAINT alg_u_alg_srtgebouw_upper UNIQUE(alg_srtgebouw_upper, alg_srtgebouw_verwijder)
);

CREATE_TABLE(alg_gebouw,0)
(
    alg_gebouw_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_gebouw_key PRIMARY KEY,
    alg_locatie_key
        NUMBER(10)
        NOT_NULL(alg_locatie_key, alg_r_gebouw_loc_key1)
        CONSTRAINT alg_r_gebouw_loc_key2 REFERENCES alg_locatie(alg_locatie_key),
    alg_srtgebouw_key
        NUMBER(10)
        CONSTRAINT alg_r_alg_srtgebouw_key REFERENCES alg_srtgebouw(alg_srtgebouw_key),
    alg_gebouw_naam
        VARCHAR2(60)
        NOT_NULL(alg_gebouw_naam, alg_c_alg_gebouw_naam),
    alg_gebouw_code
        VARCHAR2(12)
        NOT_NULL(alg_gebouw_code, alg_c_alg_gebouw_code),
    alg_gebouw_omschrijving
        VARCHAR2(60)
        NOT_NULL(alg_gebouw_omschrijving, alg_c_alg_gebouw_omschrijving),
    alg_gebouw_upper
        VARCHAR2(30)  /* 12 ware genoeg geweest */
        NOT_NULL(alg_gebouw_upper, alg_c_alg_gebouw_upper),
    alg_gebouw_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_gebouw_aanmaak NOT NULL,
    alg_gebouw_verwijder
        DATE
        DEFAULT NULLDATUM,
    alg_gebouw_ordernr
        VARCHAR2(30),
    alg_gebouw_getekend
        DATE
        DEFAULT NULLDATUM,
    alg_gebouw_bruto_vloeropp
        NUMBER(12,2)
        CONSTRAINT alg_c_alg_gebouw_vloeropp CHECK(alg_gebouw_bruto_vloeropp >= 0),
    alg_gebouw_omtrek
        NUMBER(12,2)
        CONSTRAINT alg_c_alg_gebouw_omtrek CHECK(alg_gebouw_omtrek >= 0),
    alg_gebouw_inhoud
        NUMBER(12,2),
        CONSTRAINT alg_c_alg_gebouw_inhoud CHECK(alg_gebouw_inhoud >= 0),
-- in PRS_TAB.SRC:
--    prs_kostenplaats_key
--        NUMBER(10)
--        CONSTRAINT alg_r_prs_afdeling_kostenp1 REFERENCES prs_kostenplaats(prs_kostenplaats_key),
-- in MLD_TAB.SRC:
--    mld_adres_key NUMBER(10)
--    CONSTRAINT alg_r_mld_adres_key1 REFERENCES mld_adres(mld_adres_key),
    alg_gebouw_opmerking
        VARCHAR2(50),
-- in PRS_TAB.SRC: de gebouwverantwoordelijke (1 en 2)
--    prs_perslid_key_verantw
--        NUMBER(10)
--        CONSTRAINT alg_r_prs_perslid_key1 REFERENCES prs_perslid(prs_perslid_key),
--    prs_perslid_key_verantw2
--        NUMBER(10)
--        CONSTRAINT alg_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key),
    alg_gebouw_dwgx
        NUMBER(10,3),
    alg_gebouw_dwgy
        NUMBER(10,3),
    alg_gebouw_x
        NUMBER(16,6),
    alg_gebouw_y
        NUMBER(16,6),
    alg_gebouw_beginuur
        NUMBER(5,2),
    alg_gebouw_einduur
        NUMBER(5,2),
    alg_gebouw_werkdagen
        NUMBER(1)
        DEFAULT 1
        NOT_NULL(alg_gebouw_werkdagen, alg_c_gebouw_werkdagen)
        CONSTRAINT alg_c_alg_gebouw_werk CHECK(alg_gebouw_werkdagen IN (0,1)),
    alg_gebouw_bez
        NUMBER(1)
        DEFAULT 1
        CONSTRAINT alg_c_alg_gebouw_bez CHECK(alg_gebouw_bez IS NULL
                                           OR alg_gebouw_bez = 1),
    alg_gebouw_email
        VARCHAR2(200),
    alg_gebouw_vervaldatum
        DATE,
    alg_gebouw_mjb_score1
        NUMBER(6,2),
    CONSTRAINT alg_u_alg_gebouw_upper UNIQUE(alg_locatie_key, alg_gebouw_upper, alg_gebouw_verwijder)
);

CREATE_TABLE(alg_verdieping,0)
(
    alg_verdieping_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_verdieping_key PRIMARY KEY,
    alg_gebouw_key
        NUMBER(10)
        NOT_NULL(alg_gebouw_key, alg_r_alg_gebouw_key1)
        CONSTRAINT alg_r_alg_gebouw_key2 REFERENCES alg_gebouw(alg_gebouw_key),
    alg_verdieping_omschrijving
        VARCHAR2(30)
        NOT_NULL(alg_verdieping_omschrijving, alg_c_alg_verdieping_omschr),
    alg_verdieping_upper
        VARCHAR2(30)
        NOT_NULL(alg_verdieping_upper, alg_c_alg_verdieping_upper),
    alg_verdieping_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_verdieping_aanmaak NOT NULL,
    alg_verdieping_verwijder
        DATE
        DEFAULT NULLDATUM,
    alg_verdieping_volgnr
        NUMBER(3)
        NOT_NULL(alg_verdieping_volgnr, alg_c_alg_verdieping_volgnr),
    alg_verdieping_tekening     /* references the drawingfile */
        VARCHAR2(32),
    alg_verdieping_in_bewerking
        NUMBER(1)
        CONSTRAINT alg_c_alg_verdieping_in_bewerk CHECK(alg_verdieping_in_bewerking IS NULL
                                                     OR alg_verdieping_in_bewerking = 1),
    alg_verdieping_code
    	VARCHAR2(10)
    	NOT_NULL(alg_verdieping_code, alg_c_alg_verdieping_code),
-- in MLD_TAB.SRC:
--    mld_dienstniveau_key
--        NUMBER(10)
--        REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL,
    CONSTRAINT alg_u_alg_verdieping_upper UNIQUE(alg_gebouw_key, alg_verdieping_upper, alg_verdieping_verwijder),
    CONSTRAINT alg_u_alg_verdieping_volgnr UNIQUE(alg_gebouw_key, alg_verdieping_volgnr, alg_verdieping_verwijder),
    CONSTRAINT alg_u_alg_verdieping_code UNIQUE(alg_gebouw_key, alg_verdieping_code, alg_verdieping_verwijder)
);

CREATE_TABLE(alg_srtruimte,0)
(
    alg_srtruimte_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_srtruimte_key PRIMARY KEY,
    alg_srtruimte_omschrijving
        VARCHAR2(50)
        NOT_NULL(alg_srtruimte_omschrijving, alg_c_alg_srtruimte_omschr),
    alg_srtruimte_upper
        VARCHAR2(50)
        NOT_NULL(alg_srtruimte_upper, alg_c_alg_srtruimte_upper),
    alg_srtruimte_code
        VARCHAR2(10),
    alg_srtruimte_prijs
        NUMBER(11,5),
    alg_srtruimte_prijs2  /* extra kosten, bv servicekosten */
        NUMBER(11,5),
    alg_srtruimte_prijs3  /* extra kosten, bv onderhoud */
        NUMBER(11,5),
    alg_srtruimte_prijs4  /* extra kosten, bv energie */
        NUMBER(11,5),
    alg_srtruimte_prijs5  /* extra kosten, bv belasting */
        NUMBER(11,5),
    alg_srtruimte_aanmaak
        DATE
        DEFAULT SYSDATE
        CONSTRAINT alg_c_alg_srtruimte_aanmaak NOT NULL,
    alg_srtruimte_verwijder
        DATE
        DEFAULT NULLDATUM,
    prs_bevat_werkplek
        NUMBER(1)
        CONSTRAINT alg_c_prs_bevat_werkplek CHECK(prs_bevat_werkplek IS NULL
                                               OR prs_bevat_werkplek = 1 ),
    prs_verhuurbaar
        NUMBER(1)
        CONSTRAINT alg_c_prs_verhuurbaar CHECK(prs_verhuurbaar IS NULL
                                            OR prs_verhuurbaar = 1 ),
    alg_srtruimte_t_uitvoertijd
        MLD_T_UITVOERTIJD
        CONSTRAINT alg_c_alg_srtruimt_t_uitvtijd CHECK(alg_srtruimte_t_uitvoertijd.tijdsduur >= 0),
   CONSTRAINT alg_c_prs_werkplek_verhuurbaar CHECK(NOT(prs_bevat_werkplek = 1
                                                    AND prs_verhuurbaar IS NULL)),
    CONSTRAINT alg_u_alg_srtruimte_upper UNIQUE(alg_srtruimte_upper, alg_srtruimte_verwijder)
);
ALTER TABLE alg_srtruimte MODIFY alg_srtruimte_t_uitvoertijd DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);

CREATE_TABLE(alg_srtruimte_locatiegebouw,0)
(
    alg_srtruimte_lg_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_srtruimte_lg_key PRIMARY KEY,
    alg_srtruimte_key
        NUMBER(10)
        CONSTRAINT alg_r_alg_srtruimte_key2 REFERENCES alg_srtruimte(alg_srtruimte_key) ON DELETE CASCADE
        NOT_NULL(alg_srtruimte_key, alg_r_srtruimte_key1),
    alg_locatie_key
        NUMBER(10)
        CONSTRAINT alg_r_locatie_key3 REFERENCES alg_locatie(alg_locatie_key) ON DELETE CASCADE,
    alg_gebouw_key
        NUMBER(10)
        CONSTRAINT alg_r_alg_gebouw_key3 REFERENCES alg_gebouw(alg_gebouw_key) ON DELETE CASCADE,
    alg_srtruimte_lg_prijs
        NUMBER(11,5),
    alg_srtruimte_lg_prijs2  /* extra kosten, bv servicekosten */
        NUMBER(11,5),
    alg_srtruimte_lg_prijs3  /* extra kosten, bv onderhoud */
        NUMBER(11,5),
    alg_srtruimte_lg_prijs4  /* extra kosten, bv energie */
        NUMBER(11,5),
    alg_srtruimte_lg_prijs5  /* extra kosten, bv belasting */
        NUMBER(11,5),
    CONSTRAINT alg_u_alg_srtruimte_lg UNIQUE(alg_srtruimte_key, alg_locatie_key, alg_gebouw_key),
    CONSTRAINT alg_c_alg_srtruimte_lg CHECK (alg_locatie_key IS NULL OR alg_gebouw_key IS NULL)
);


CREATE_TABLE(alg_ruimte,0)
(
    alg_ruimte_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_ruimte_key PRIMARY KEY,
    alg_verdieping_key
        NUMBER(10)
        NOT_NULL(alg_verdieping_key, alg_r_alg_verdieping_key1)
        CONSTRAINT alg_r_alg_verdieping_key2 REFERENCES alg_verdieping(alg_verdieping_key),
    alg_srtruimte_key
        NUMBER(10)
        CONSTRAINT alg_r_alg_srtruimte_key REFERENCES alg_srtruimte(alg_srtruimte_key),
    alg_ruimte_nr
        VARCHAR2(10)
        NOT_NULL(alg_ruimte_nr, alg_c_alg_ruimte_nr),
    alg_ruimte_upper_nr         /* references into the drawing */
        VARCHAR2(10)
        NOT_NULL(alg_ruimte_upper_nr, alg_c_alg_ruimte_upper_nr),
    alg_ruimte_acadkey
        VARCHAR2(10),
    alg_ruimte_omschrijving
        VARCHAR2(30),
    alg_ruimte_aanmaak
        DATE
        DEFAULT SYSDATE
        NOT_NULL(alg_ruimte_aanmaak, alg_c_alg_ruimte_aanmaak),
    alg_ruimte_verwijder
        DATE
        DEFAULT NULLDATUM,
    alg_ruimte_getekend
        DATE
        DEFAULT NULLDATUM,
    alg_ruimte_bruto_vloeropp
        NUMBER(8,2)
        CONSTRAINT alg_c_alg_ruimte_vloeropp CHECK(alg_ruimte_bruto_vloeropp >= 0),
    alg_ruimte_opp_alt1
        NUMBER(9,2),
    alg_ruimte_opp_alt2
        NUMBER(9,2),
    alg_ruimte_omtrek
        NUMBER(8,2),
        CONSTRAINT alg_c_alg_ruimte_omtrek CHECK(alg_ruimte_omtrek >= 0),
    alg_ruimte_inhoud
        NUMBER(12,2)
        CONSTRAINT alg_c_alg_ruimte_inhoud CHECK(alg_ruimte_inhoud >= 0),
    alg_ruimte_opmerking
        VARCHAR2(50),
    alg_ruimte_vloer_omschrijving
        VARCHAR2(15),
    alg_ruimte_opp_gevelglas
        NUMBER(8,2),
    alg_ruimte_opp_separatieglas
        NUMBER(8,2),
    alg_ruimte_opp_gevelbekleding
        NUMBER(8,2),
    alg_ruimte_beginuur
        NUMBER(5,2),
    alg_ruimte_einduur
        NUMBER(5,2),
    alg_ruimte_werkdagen
        NUMBER(1)
        -- DEFAULT NULL op gebouw terugvallen
        CONSTRAINT alg_c_alg_ruimte_werk CHECK(alg_ruimte_werkdagen IN (0,1)),
-- in MLD_TAB.SRC:
--    mld_dienstniveau_key
--        NUMBER(10)
--        REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL,
    CONSTRAINT alg_u_alg_ruimte_upper_nr UNIQUE(alg_verdieping_key, alg_ruimte_upper_nr, alg_ruimte_verwijder)
);

CREATE_TABLE(alg_import,0)
(
    alg_import_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_import_key PRIMARY KEY,
    alg_import_ruimtenr
        VARCHAR2(10)
        NOT_NULL(alg_import_ruimtenr, alg_c_alg_import_ruimtenr),
    alg_import_omschr
        VARCHAR2(30),
    alg_import_opp
        VARCHAR2(10),
    alg_import_vloer
    VARCHAR2(30)
);


CREATE_TABLE(alg_onrgoedkenmerk,0)
    (alg_onrgoedkenmerk_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_onrgoedkenmerk_key PRIMARY KEY
    ,alg_onrgoed_key
        NUMBER(10)
    ,alg_onrgoed_niveau
        VARCHAR2(1)
    ,alg_kenmerk_key
        NUMBER(10)
    ,alg_onrgoedkenmerk_waarde
        VARCHAR2(4000)
    ,alg_onrgoedkenmerk_aanmaak
        DATE
        DEFAULT SYSDATE
        NOT_NULL(alg_onrgoedkenmerk_aanmaak, alg_c_alg_onrgoedkenmerk_aanm)
    ,alg_onrgoedkenmerk_verwijder
        DATE
        DEFAULT NULLDATUM
    ,CONSTRAINT alg_u_alg_onrgoedkenmerk_key UNIQUE(alg_onrgoed_key, alg_kenmerk_key, alg_onrgoedkenmerk_verwijder)
);

CREATE_TABLE(alg_kenmerk,0)
    (alg_kenmerk_key
        NUMBER(10)
        CONSTRAINT alg_k_alg_kenmerk_key PRIMARY KEY
    ,alg_kenmerk_niveau
        VARCHAR2(1)
        CONSTRAINT alg_c_alg_kenmerk_niveau1 CHECK(alg_kenmerk_niveau IS NOT NULL
               AND alg_kenmerk_niveau IN ('R','V','G','T','L','D'))
    ,alg_kenmerk_volgnr
        NUMBER(3)
        NOT NULL
    ,alg_kenmerk_omschrijving
        VARCHAR2(50)
    ,alg_kenmerk_upper
        VARCHAR2(50)
    ,alg_kenmerk_hint
        VARCHAR2(255)
    ,alg_kenmerk_default
        VARCHAR2(4000)
    ,alg_kenmerk_dimensie
        VARCHAR2(10)
    ,alg_kenmerk_kenmerktype
        VARCHAR2(1)
        CONSTRAINT alg_c_alg_kenmerk_type1 CHECK(alg_kenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B'))
    ,alg_kenmerk_systeem
        NUMBER(2)
    ,alg_kenmerk_toonbaar
       NUMBER(1)
    ,alg_kenmerk_uniek
       NUMBER(1)
    ,alg_kenmerk_regexp
       VARCHAR2(255)
    ,alg_kenmerk_verplicht
       NUMBER(1)
    ,alg_kenmerk_groep
        NUMBER(1)
       DEFAULT 0 NOT NULL
    ,alg_kenmerk_lengte
        NUMBER(4)
    ,alg_kenmerk_dec
        NUMBER(2)
    ,alg_kenmerk_nmin
        NUMBER(10)
    ,alg_kenmerk_nmax
        NUMBER(10)
    ,fac_kenmerkdomein_key
        NUMBER(10)
        CONSTRAINT alg_r_kenmerkdomein_key1 REFERENCES fac_kenmerkdomein(fac_kenmerkdomein_key)
    ,alg_kenmerk_aanmaak
        DATE
        DEFAULT SYSDATE
        NOT_NULL(alg_kenmerk_aanmaak, alg_c_alg_kenmerk_aanmaak)
    ,alg_kenmerk_verwijder
        DATE
        DEFAULT NULLDATUM
);

-- Koppeltabel tussen de Kennisbank (FAQ) en plaats (alg_v_allonroerendgoed)
CREATE_TABLE(alg_algfaq, 0)
(
    alg_algfaq_key
        NUMBER(10)
        CONSTRAINT alg_k_algfaq_key PRIMARY KEY,
    alg_locatie_key
        NUMBER(10)
        NOT_NULL(alg_locatie_key, mld_c_alg_locatie_key)
        CONSTRAINT mld_r_mld_locatie_key1 REFERENCES alg_locatie(alg_locatie_key) ON DELETE CASCADE,
    alg_onroerendgoed_keys
        NUMBER(10),
    fac_faq_key
        NUMBER(10)
        NOT_NULL(fac_faq_key, alg_c_fac_faq_key)
        CONSTRAINT alg_r_fac_faq_key1 REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE
);

REGISTERONCE('$Id$')