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

CREATE TABLE [REISDOCUMENT] (
    [REISDOCUMENT_ID] INT PRIMARY KEY,
    [AANDUIDINGINHOUDINGVERMISSING] VARCHAR(255),
    [AUTORITEITVANAFGIFTE] VARCHAR(255),
    [DATUMEINDEGELDIGHEIDDOCUMENT] DATE,
    [DATUMINGANGDOCUMENT] DATE,
    [DATUMINHOUDINGOFVERMISSING] DATE,
    [DATUMUITGIFTE] DATE,
    [IS_VERSTREKT_AAN_INGESCHREVENPERSOON_ID] INT,
    [REISDOCUMENTNUMMER] VARCHAR(255),
    [SOORT] VARCHAR(255)
);

CREATE TABLE [INGEZETENE] (
    [INGESCHREVENPERSOON_ID] INT PRIMARY KEY,
    [AANDUIDINGEUROPEESKIESRECHT] BIT,
    [AANDUIDINGUITGESLOTENKIESRECHT] BIT,
    [DATUMVERKRIJGINGVERBLIJFSTITEL] DATE,
    [DATUMVERLIESVERBLIJFSTITEL] DATE,
    [INDICATIEBLOKKERING] VARCHAR(255),
    [INDICATIECURATELEREGISTER] VARCHAR(255),
    [INDICATIEGEZAGMINDERJARIGE] VARCHAR(255)
);

CREATE TABLE [KP_INGZTN_INGSCHRVNPRSN] (
    [KP_INGZTN_INGSCHRVNPRSN_ID] INT PRIMARY KEY,
    [INGEZETENE_ID] INT,
    [INGESCHREVENPERSOON_ID] INT
);

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)

