CREATE TABLE [NUMMERAANDUIDING] (
    [NUMMERAANDUIDING_ID] INT PRIMARY KEY,
    [BEGINGELDIGHEID] DATE,
    [DATUMEINDE] DATE,
    [DATUMINGANG] DATE,
    [DOCUMENTDATUM] DATE,
    [DOCUMENTNUMMER] INT,
    [EINDEGELDIGHEID] DATE,
    [GECONSTATEERD] BIT,
    [GEOMETRIE] GEOMETRY,
    [HUISLETTER] VARCHAR(255),
    [HUISNUMMER] VARCHAR(255),
    [HUISNUMMERTOEVOEGING] VARCHAR(255),
    [IDENTIFICATIE] VARCHAR(255),
    [POSTCODE] VARCHAR(255),
    [STATUS] VARCHAR(255),
    [TYPEADRESSEERBAAROBJECT] VARCHAR(255),
    [VERSIE] INT
);

CREATE TABLE [KP_INGSCHRVNPRSN_NTRLJKPRSN] (
    [KP_INGSCHRVNPRSN_NTRLJKPRSN_ID] INT PRIMARY KEY,
    [INGESCHREVENPERSOON_ID] INT,
    [NATUURLIJKPERSOON_ID] INT
);

CREATE TABLE [NATUURLIJKPERSOON] (
    [RECHTSPERSOON_ID] INT PRIMARY KEY,
    [AANDUIDINGNAAMGEBRUIK] VARCHAR(50),
    [AANHEFAANSCHRIJVING] VARCHAR(50),
    [ACADEMISCHETITEL] VARCHAR(80),
    [ACHTERNAAM] VARCHAR(100),
    [ADELLIJKETITELOFPREDIKAAT] VARCHAR(255),
    [ANUMMER] VARCHAR(20),
    [BIJZONDERNEDERLANDERSCHAP] VARCHAR(50),
    [BURGERSERVICENUMMER] VARCHAR(255),
    [DATUMGEBOORTE] DATE,
    [DATUMOVERLIJDEN] DATE,
    [GEBOORTELAND] VARCHAR(255),
    [GEBOORTEPLAATS] VARCHAR(200),
    [GESLACHTSAANDUIDING] VARCHAR(255),
    [GESLACHTSNAAM] VARCHAR(200),
    [GESLACHTSNAAMAANSCHRIJVING] VARCHAR(200),
    [HANDLICHTING] VARCHAR(50),
    [INDICATIEAFSCHERMINGPERSOONSGEGEVENS] BIT,
    [INDICATIEOVERLEDEN] BIT,
    [LANDOVERLIJDEN] VARCHAR(255),
    [NATIONALITEIT] VARCHAR(100),
    [OVERLIJDENSPLAATS] VARCHAR(200),
    [VOORLETTERSAANSCHRIJVING] VARCHAR(20),
    [VOORNAMEN] VARCHAR(200),
    [VOORNAMENAANSCHRIJVING] VARCHAR(200),
    [VOORVOEGSELGESLACHTSNAAM] VARCHAR(80)
);

CREATE TABLE [RECHTSPERSOON] (
    [RECHTSPERSOON_ID] INT PRIMARY KEY,
    [ADRESBINNENLAND] VARCHAR(255),
    [ADRESBUITENLAND] VARCHAR(255),
    [ADRESCORRESPONDENTIE] VARCHAR(100),
    [EMAILADRES] VARCHAR(80),
    [FAXNUMMER] VARCHAR(20),
    [IDENTIFICATIE] VARCHAR(255),
    [KVKNUMMER] VARCHAR(20),
    [NAAM] VARCHAR(200),
    [RECHTSVORM] VARCHAR(100),
    [REKENINGNUMMER] VARCHAR(255),
    [TELEFOONNUMMER] VARCHAR(20)
);

CREATE TABLE [KP_NTRLJKPRSN_RCHTSPRSN] (
    [KP_NTRLJKPRSN_RCHTSPRSN_ID] INT PRIMARY KEY,
    [NATUURLIJKPERSOON_ID] INT,
    [RECHTSPERSOON_ID] INT
);

CREATE TABLE [INGESCHREVENPERSOON] (
    [RECHTSPERSOON_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),
    [HEEFT_ALS_ADRES_NUMMERAANDUIDING_ID] INT,
    [INDICATIEGEHEIM] BIT,
    [INGEZETENE] BIT,
    [LANDWAARNAARVERTROKKEN] VARCHAR(255),
    [LANDWAARVANDAANINGESCHREVEN] VARCHAR(255),
    [OUDER1] VARCHAR(255),
    [OUDER2] VARCHAR(255),
    [OUDER_1_RECHTSPERSOON_ID] INT,
    [OUDER_2_RECHTSPERSOON_ID] INT,
    [PARTNERID] VARCHAR(255),
    [REDENEINDEBEWONING] DATE,
    [REDENOPSCHORTINGBIJHOUDING] VARCHAR(200),
    [SIGNALERINGREISDOCUMENT] BIT,
    [VERBLIJFSTITEL] VARCHAR(255)
);

ALTER TABLE [NATUURLIJKPERSOON] ADD CONSTRAINT FK_NATUURLIJKPERSOON_GEN_RECHTSPERSOON FOREIGN KEY ([RECHTSPERSOON_ID]) REFERENCES [RECHTSPERSOON] ([RECHTSPERSOON_ID]);
-- Generalization to RECHTSPERSOON

ALTER TABLE [INGESCHREVENPERSOON] ADD CONSTRAINT FK_INGESCHREVENPERSOON_GEN_NATUURLIJKPERSOON FOREIGN KEY ([RECHTSPERSOON_ID]) REFERENCES [NATUURLIJKPERSOON] ([RECHTSPERSOON_ID]);
-- Generalization to NATUURLIJKPERSOON

ALTER TABLE [KP_INGSCHRVNPRSN_NTRLJKPRSN] ADD CONSTRAINT FK_KP_INGSCHRVNPRSN_NTRLJKPRSN_1 FOREIGN KEY ([INGESCHREVENPERSOON_ID]) REFERENCES [INGESCHREVENPERSOON] ([RECHTSPERSOON_ID]);
-- INGESCHREVENPERSOON (many-to-many junction, Connector_ID: 1878)

ALTER TABLE [KP_INGSCHRVNPRSN_NTRLJKPRSN] ADD CONSTRAINT FK_KP_INGSCHRVNPRSN_NTRLJKPRSN_2 FOREIGN KEY ([NATUURLIJKPERSOON_ID]) REFERENCES [NATUURLIJKPERSOON] ([RECHTSPERSOON_ID]);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1878)

ALTER TABLE [KP_NTRLJKPRSN_RCHTSPRSN] ADD CONSTRAINT FK_KP_NTRLJKPRSN_RCHTSPRSN_1 FOREIGN KEY ([NATUURLIJKPERSOON_ID]) REFERENCES [NATUURLIJKPERSOON] ([RECHTSPERSOON_ID]);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1898)

ALTER TABLE [KP_NTRLJKPRSN_RCHTSPRSN] ADD CONSTRAINT FK_KP_NTRLJKPRSN_RCHTSPRSN_2 FOREIGN KEY ([RECHTSPERSOON_ID]) REFERENCES [RECHTSPERSOON] ([RECHTSPERSOON_ID]);
-- RECHTSPERSOON (many-to-many junction, Connector_ID: 1898)

ALTER TABLE [INGESCHREVENPERSOON] ADD CONSTRAINT FK_INGESCHREVENPERSOON_OUDER_1 FOREIGN KEY ([OUDER_1_RECHTSPERSOON_ID]) REFERENCES [RECHTSPERSOON] ([RECHTSPERSOON_ID]);
-- OUDER_1 (1 to 1, Connector_ID: 1871)

ALTER TABLE [INGESCHREVENPERSOON] ADD CONSTRAINT FK_INGESCHREVENPERSOON_OUDER_2 FOREIGN KEY ([OUDER_2_RECHTSPERSOON_ID]) REFERENCES [RECHTSPERSOON] ([RECHTSPERSOON_ID]);
-- OUDER_2 (1 to 1, Connector_ID: 1873)

ALTER TABLE [INGESCHREVENPERSOON] ADD CONSTRAINT FK_INGESCHREVENPERSOON_HEEFT_ALS_ADRES FOREIGN KEY ([HEEFT_ALS_ADRES_NUMMERAANDUIDING_ID]) REFERENCES [NUMMERAANDUIDING] ([NUMMERAANDUIDING_ID]);
-- HEEFT_ALS_ADRES (0..* to 0..1, Connector_ID: 2273)

