CREATE TABLE INGESCHREVENPERSOON (
    INGESCHREVENPERSOON_ID NUMBER PRIMARY KEY,
    ADRESHERKOMST VARCHAR2(255),
    ANUMMER VARCHAR2(20),
    BESCHRIJVINGLOCATIE VARCHAR2(200),
    BUITENLANDSREISDOCUMENT VARCHAR2(80),
    BURGERLIJKESTAAT VARCHAR2(255),
    DATUMBEGINGELDIGHEIDVERBLIJFPLAATS DATE,
    DATUMEINDEGELDIGHEIDVERBLIJFSPLAATS DATE,
    DATUMINSCHRIJVINGGEMEENTE DATE,
    DATUMOPSCHORTINGBIJHOUDING DATE,
    DATUMVERTREKUITNEDERLAND DATE,
    DATUMVESTIGINGNEDERLAND DATE,
    GEMEENTEVANINSCHRIJVING VARCHAR2(80),
    GEZINSRELATIE VARCHAR2(255),
    INDICATIEGEHEIM NUMBER(1),
    INGEZETENE NUMBER(1),
    LANDWAARNAARVERTROKKEN VARCHAR2(255),
    LANDWAARVANDAANINGESCHREVEN VARCHAR2(255),
    OUDER1 VARCHAR2(255),
    OUDER2 VARCHAR2(255),
    OUDER_1_INGESCHREVENPERSOON_ID NUMBER,
    OUDER_2_INGESCHREVENPERSOON_ID NUMBER,
    PARTNERID VARCHAR2(255),
    REDENEINDEBEWONING DATE,
    REDENOPSCHORTINGBIJHOUDING VARCHAR2(200),
    SIGNALERINGREISDOCUMENT NUMBER(1),
    VERBLIJFSTITEL VARCHAR2(255)
);

CREATE TABLE REISDOCUMENT (
    REISDOCUMENT_ID NUMBER PRIMARY KEY,
    AANDUIDINGINHOUDINGVERMISSING VARCHAR2(255),
    AUTORITEITVANAFGIFTE VARCHAR2(255),
    DATUMEINDEGELDIGHEIDDOCUMENT DATE,
    DATUMINGANGDOCUMENT DATE,
    DATUMINHOUDINGOFVERMISSING DATE,
    DATUMUITGIFTE DATE,
    IS_VERSTREKT_AAN_INGESCHREVENPERSOON_ID NUMBER,
    REISDOCUMENTNUMMER VARCHAR2(255),
    SOORT VARCHAR2(255)
);

CREATE TABLE INGEZETENE (
    INGESCHREVENPERSOON_ID NUMBER PRIMARY KEY,
    AANDUIDINGEUROPEESKIESRECHT NUMBER(1),
    AANDUIDINGUITGESLOTENKIESRECHT NUMBER(1),
    DATUMVERKRIJGINGVERBLIJFSTITEL DATE,
    DATUMVERLIESVERBLIJFSTITEL DATE,
    INDICATIEBLOKKERING VARCHAR2(255),
    INDICATIECURATELEREGISTER VARCHAR2(255),
    INDICATIEGEZAGMINDERJARIGE VARCHAR2(255)
);

CREATE TABLE KP_INGZTN_INGSCHRVNPRSN (
    KP_INGZTN_INGSCHRVNPRSN_ID NUMBER PRIMARY KEY,
    INGEZETENE_ID NUMBER,
    INGESCHREVENPERSOON_ID NUMBER
);

ALTER TABLE INGEZETENE ADD CONSTRAINT FK_INGEZETENE_GEN_INGESCHREVENPERSOON FOREIGN KEY (INGESCHREVENPERSOON_ID) REFERENCES INGESCHREVENPERSOON (INGESCHREVENPERSOON_ID);
-- Generalization to INGESCHREVENPERSOON

ALTER TABLE KP_INGZTN_INGSCHRVNPRSN ADD CONSTRAINT FK_KP_INGZTN_INGSCHRVNPRSN_1 FOREIGN KEY (INGEZETENE_ID) REFERENCES INGEZETENE (INGESCHREVENPERSOON_ID);
-- INGEZETENE (many-to-many junction, Connector_ID: 1867)

ALTER TABLE KP_INGZTN_INGSCHRVNPRSN ADD CONSTRAINT FK_KP_INGZTN_INGSCHRVNPRSN_2 FOREIGN KEY (INGESCHREVENPERSOON_ID) REFERENCES INGESCHREVENPERSOON (INGESCHREVENPERSOON_ID);
-- INGESCHREVENPERSOON (many-to-many junction, Connector_ID: 1867)

ALTER TABLE REISDOCUMENT ADD CONSTRAINT FK_REISDOCUMENT_IS_VERSTREKT_AAN FOREIGN KEY (IS_VERSTREKT_AAN_INGESCHREVENPERSOON_ID) REFERENCES INGESCHREVENPERSOON (INGESCHREVENPERSOON_ID);
-- IS_VERSTREKT_AAN (1 to 0..*, Connector_ID: 1868)

ALTER TABLE INGESCHREVENPERSOON ADD CONSTRAINT FK_INGESCHREVENPERSOON_OUDER_1 FOREIGN KEY (OUDER_1_INGESCHREVENPERSOON_ID) REFERENCES INGESCHREVENPERSOON (INGESCHREVENPERSOON_ID);
-- OUDER_1 (1 to 1, Connector_ID: 1871)

ALTER TABLE INGESCHREVENPERSOON ADD CONSTRAINT FK_INGESCHREVENPERSOON_OUDER_2 FOREIGN KEY (OUDER_2_INGESCHREVENPERSOON_ID) REFERENCES INGESCHREVENPERSOON (INGESCHREVENPERSOON_ID);
-- OUDER_2 (1 to 1, Connector_ID: 1873)

