CREATE TABLE KP_LJNNGRP_LCT (
    KP_LJNNGRP_LCT_ID NUMBER PRIMARY KEY,
    LIJNENGROEP_ID NUMBER,
    LOCATIE_ID NUMBER
);

CREATE TABLE KP_GBD_LCT (
    KP_GBD_LCT_ID NUMBER PRIMARY KEY,
    GEBIED_ID NUMBER,
    LOCATIE_ID NUMBER
);

CREATE TABLE PUNTENGROEP (
    LOCATIE_ID NUMBER PRIMARY KEY
);

CREATE TABLE KP_PNTNGRP_LCT (
    KP_PNTNGRP_LCT_ID NUMBER PRIMARY KEY,
    PUNTENGROEP_ID NUMBER,
    LOCATIE_ID NUMBER
);

CREATE TABLE KP_LJN_LCT (
    KP_LJN_LCT_ID NUMBER PRIMARY KEY,
    LIJN_ID NUMBER,
    LOCATIE_ID NUMBER
);

CREATE TABLE LIJN (
    LOCATIE_ID NUMBER PRIMARY KEY,
    LIJNLOCATIE VARCHAR2(255),
    OMVAT_LOCATIE_ID NUMBER
);

CREATE TABLE PUNT (
    LOCATIE_ID NUMBER PRIMARY KEY,
    OMVAT_LOCATIE_ID NUMBER,
    PUNTLOCATIE VARCHAR2(255)
);

CREATE TABLE LIJNENGROEP (
    LOCATIE_ID NUMBER PRIMARY KEY
);

CREATE TABLE KP_PNT_LCT (
    KP_PNT_LCT_ID NUMBER PRIMARY KEY,
    PUNT_ID NUMBER,
    LOCATIE_ID NUMBER
);

CREATE TABLE KP_GBDNGRP_LCT (
    KP_GBDNGRP_LCT_ID NUMBER PRIMARY KEY,
    GEBIEDENGROEP_ID NUMBER,
    LOCATIE_ID NUMBER
);

CREATE TABLE GEBIED (
    LOCATIE_ID NUMBER PRIMARY KEY,
    GEBIEDSAANDUIDING VARCHAR2(255),
    OMVAT_LOCATIE_ID NUMBER
);

CREATE TABLE LOCATIE (
    LOCATIE_ID NUMBER PRIMARY KEY,
    HOOGTE NUMBER,
    NAAM VARCHAR2(200),
    NEN3610ID VARCHAR2(80)
);

CREATE TABLE GEBIEDENGROEP (
    LOCATIE_ID NUMBER PRIMARY KEY
);

ALTER TABLE GEBIED ADD CONSTRAINT FK_GEBIED_GEN_LOCATIE FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- Generalization to LOCATIE

ALTER TABLE PUNT ADD CONSTRAINT FK_PUNT_GEN_LOCATIE FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- Generalization to LOCATIE

ALTER TABLE PUNTENGROEP ADD CONSTRAINT FK_PUNTENGROEP_GEN_LOCATIE FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- Generalization to LOCATIE

ALTER TABLE GEBIEDENGROEP ADD CONSTRAINT FK_GEBIEDENGROEP_GEN_LOCATIE FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- Generalization to LOCATIE

ALTER TABLE LIJNENGROEP ADD CONSTRAINT FK_LIJNENGROEP_GEN_LOCATIE FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- Generalization to LOCATIE

ALTER TABLE LIJN ADD CONSTRAINT FK_LIJN_GEN_LOCATIE FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- Generalization to LOCATIE

ALTER TABLE KP_LJN_LCT ADD CONSTRAINT FK_KP_LJN_LCT_1 FOREIGN KEY (LIJN_ID) REFERENCES LIJN (LOCATIE_ID);
-- LIJN (many-to-many junction, Connector_ID: 2210)

ALTER TABLE KP_LJN_LCT ADD CONSTRAINT FK_KP_LJN_LCT_2 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- LOCATIE (many-to-many junction, Connector_ID: 2210)

ALTER TABLE KP_GBDNGRP_LCT ADD CONSTRAINT FK_KP_GBDNGRP_LCT_1 FOREIGN KEY (GEBIEDENGROEP_ID) REFERENCES GEBIEDENGROEP (LOCATIE_ID);
-- GEBIEDENGROEP (many-to-many junction, Connector_ID: 2213)

ALTER TABLE KP_GBDNGRP_LCT ADD CONSTRAINT FK_KP_GBDNGRP_LCT_2 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- LOCATIE (many-to-many junction, Connector_ID: 2213)

ALTER TABLE KP_LJNNGRP_LCT ADD CONSTRAINT FK_KP_LJNNGRP_LCT_1 FOREIGN KEY (LIJNENGROEP_ID) REFERENCES LIJNENGROEP (LOCATIE_ID);
-- LIJNENGROEP (many-to-many junction, Connector_ID: 2219)

ALTER TABLE KP_LJNNGRP_LCT ADD CONSTRAINT FK_KP_LJNNGRP_LCT_2 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- LOCATIE (many-to-many junction, Connector_ID: 2219)

ALTER TABLE KP_PNTNGRP_LCT ADD CONSTRAINT FK_KP_PNTNGRP_LCT_1 FOREIGN KEY (PUNTENGROEP_ID) REFERENCES PUNTENGROEP (LOCATIE_ID);
-- PUNTENGROEP (many-to-many junction, Connector_ID: 2220)

ALTER TABLE KP_PNTNGRP_LCT ADD CONSTRAINT FK_KP_PNTNGRP_LCT_2 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- LOCATIE (many-to-many junction, Connector_ID: 2220)

ALTER TABLE KP_PNT_LCT ADD CONSTRAINT FK_KP_PNT_LCT_1 FOREIGN KEY (PUNT_ID) REFERENCES PUNT (LOCATIE_ID);
-- PUNT (many-to-many junction, Connector_ID: 2224)

ALTER TABLE KP_PNT_LCT ADD CONSTRAINT FK_KP_PNT_LCT_2 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- LOCATIE (many-to-many junction, Connector_ID: 2224)

ALTER TABLE KP_GBD_LCT ADD CONSTRAINT FK_KP_GBD_LCT_1 FOREIGN KEY (GEBIED_ID) REFERENCES GEBIED (LOCATIE_ID);
-- GEBIED (many-to-many junction, Connector_ID: 2227)

ALTER TABLE KP_GBD_LCT ADD CONSTRAINT FK_KP_GBD_LCT_2 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- LOCATIE (many-to-many junction, Connector_ID: 2227)

ALTER TABLE LIJN ADD CONSTRAINT FK_LIJN_OMVAT FOREIGN KEY (OMVAT_LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- OMVAT (0..1 to 0..*, Connector_ID: 2205)

ALTER TABLE PUNT ADD CONSTRAINT FK_PUNT_OMVAT FOREIGN KEY (OMVAT_LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- OMVAT (0..1 to 1..*, Connector_ID: 2225)

ALTER TABLE GEBIED ADD CONSTRAINT FK_GEBIED_OMVAT FOREIGN KEY (OMVAT_LOCATIE_ID) REFERENCES LOCATIE (LOCATIE_ID);
-- OMVAT (0..1 to 1..*, Connector_ID: 2226)

