CREATE TABLE OVERIGEADRESSEERBAAROBJECTAANDUIDING (
    NUMMERAANDUIDING_ID NUMBER PRIMARY KEY,
    IDENTIFICATIECODE VARCHAR2(255)
);

CREATE TABLE ADRESSEERBAAROBJECT (
    ADRESSEERBAAROBJECT_ID NUMBER PRIMARY KEY,
    HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID NUMBER,
    IDENTIFICATIE VARCHAR2(255),
    TYPEADRESSEERBAAROBJECT VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE NUMMERAANDUIDING (
    NUMMERAANDUIDING_ID NUMBER PRIMARY KEY,
    BEGINGELDIGHEID DATE,
    DATUMEINDE DATE,
    DATUMINGANG DATE,
    DOCUMENTDATUM DATE,
    DOCUMENTNUMMER NUMBER,
    EINDEGELDIGHEID DATE,
    GECONSTATEERD NUMBER(1),
    GEOMETRIE SDO_GEOMETRY,
    HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID NUMBER,
    HUISLETTER VARCHAR2(255),
    HUISNUMMER VARCHAR2(255),
    HUISNUMMERTOEVOEGING VARCHAR2(255),
    IDENTIFICATIE VARCHAR2(255),
    POSTCODE VARCHAR2(255),
    STATUS VARCHAR2(255),
    TYPEADRESSEERBAAROBJECT VARCHAR2(255),
    VERSIE NUMBER
);

CREATE TABLE KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG (
    KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG_ID NUMBER PRIMARY KEY,
    OVERIGEADRESSEERBAAROBJECTAANDUIDING_ID NUMBER,
    NUMMERAANDUIDING_ID NUMBER
);

ALTER TABLE OVERIGEADRESSEERBAAROBJECTAANDUIDING ADD CONSTRAINT FK_OVERIGEADRESSEERBAAROBJECTAANDUIDING_GEN_NUMMERAANDUIDING FOREIGN KEY (NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID);
-- Generalization to NUMMERAANDUIDING

ALTER TABLE KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG ADD CONSTRAINT FK_KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG_1 FOREIGN KEY (OVERIGEADRESSEERBAAROBJECTAANDUIDING_ID) REFERENCES OVERIGEADRESSEERBAAROBJECTAANDUIDING (NUMMERAANDUIDING_ID);
-- OVERIGEADRESSEERBAAROBJECTAANDUIDING (many-to-many junction, Connector_ID: 2277)

ALTER TABLE KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG ADD CONSTRAINT FK_KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG_2 FOREIGN KEY (NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID);
-- NUMMERAANDUIDING (many-to-many junction, Connector_ID: 2277)

ALTER TABLE KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG ADD CONSTRAINT FK_KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG_1 FOREIGN KEY (OVERIGEADRESSEERBAAROBJECTAANDUIDING_ID) REFERENCES OVERIGEADRESSEERBAAROBJECTAANDUIDING (NUMMERAANDUIDING_ID);
-- OVERIGEADRESSEERBAAROBJECTAANDUIDING (many-to-many junction, Connector_ID: 2280)

ALTER TABLE KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG ADD CONSTRAINT FK_KP_OVRGDRSSRBRBJCTNDDNG_NMMRNDDNG_2 FOREIGN KEY (NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID);
-- NUMMERAANDUIDING (many-to-many junction, Connector_ID: 2280)

ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_HEEFT_ALS_NEVENADRES FOREIGN KEY (HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID) REFERENCES ADRESSEERBAAROBJECT (ADRESSEERBAAROBJECT_ID);
-- HEEFT_ALS_NEVENADRES (1 to 0..*, Connector_ID: 2268)

ALTER TABLE ADRESSEERBAAROBJECT ADD CONSTRAINT FK_ADRESSEERBAAROBJECT_HEEFT_ALS_HOOFDADRES FOREIGN KEY (HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID);
-- HEEFT_ALS_HOOFDADRES (1 to 1, Connector_ID: 2274)

