CREATE TABLE `KP_NTNTRLJKPRSN_RCHTSPRSN` (
    `KP_NTNTRLJKPRSN_RCHTSPRSN_ID` INT PRIMARY KEY,
    `NIETNATUURLIJKPERSOON_ID` INT,
    `RECHTSPERSOON_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_INGSCHRVNPRSN_NTRLJKPRSN` (
    `KP_INGSCHRVNPRSN_NTRLJKPRSN_ID` INT PRIMARY KEY,
    `INGESCHREVENPERSOON_ID` INT,
    `NATUURLIJKPERSOON_ID` INT
) ENGINE=InnoDB;

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` BOOLEAN,
    `INDICATIEOVERLEDEN` BOOLEAN,
    `LANDOVERLIJDEN` VARCHAR(255),
    `NATIONALITEIT` VARCHAR(100),
    `OVERLIJDENSPLAATS` VARCHAR(200),
    `VOORLETTERSAANSCHRIJVING` VARCHAR(20),
    `VOORNAMEN` VARCHAR(200),
    `VOORNAMENAANSCHRIJVING` VARCHAR(200),
    `VOORVOEGSELGESLACHTSNAAM` VARCHAR(80)
) ENGINE=InnoDB;

CREATE TABLE `KP_NTNTRLJKPRSN_NTRLJKPRSN` (
    `KP_NTNTRLJKPRSN_NTRLJKPRSN_ID` INT PRIMARY KEY,
    `NIETNATUURLIJKPERSOON_ID` INT,
    `NATUURLIJKPERSOON_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `ADRESBUITENLAND` (
    `ADRESBUITENLAND_ID` INT PRIMARY KEY,
    `ADRESREGELBUITENLAND1` VARCHAR(50),
    `ADRESREGELBUITENLAND2` VARCHAR(50),
    `ADRESREGELBUITENLAND3` VARCHAR(50),
    `DATUMAANVANGADRESBUITENLAND` DATE,
    `DATUMINSCHRIJVINGGEMEENTE` DATE,
    `DATUMVESTIGINGNEDERLAND` DATE,
    `GEMEENTEVANINSCHRIJVING` VARCHAR(100),
    `LANDADRESBUITENLAND` VARCHAR(50),
    `LANDWAARVANDAANINGESCHREVEN` VARCHAR(50),
    `OMSCHRIJVINGVANDEAANGIFTEADRESHOUDING` VARCHAR(100)
) ENGINE=InnoDB;

CREATE TABLE `VERBLIJFSTITEL` (
    `VERBLIJFSTITEL_ID` INT PRIMARY KEY,
    `AANDUIDINGVERBLIJFSTITEL` VARCHAR(255),
    `DATUMBEGINGELDIGHEIDVERBLIJFSTITEL` DATE,
    `DATUM_BEGIN` DATE,
    `DATUM_EINDE` DATE,
    `DATUM_OPNAME` DATE,
    `VERBLIJFSTITEL_CODE` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `KP_NTRLJKPRSN_RCHTSPRSN` (
    `KP_NTRLJKPRSN_RCHTSPRSN_ID` INT PRIMARY KEY,
    `NATUURLIJKPERSOON_ID` INT,
    `RECHTSPERSOON_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `HUISHOUDEN` (
    `HUISHOUDEN_ID` INT PRIMARY KEY,
    `DATUMBEGINGELDIGHEIDHUISHOUDEN` DATE,
    `DATUMEINDEGELDIGHEIDHUISHOUDEN` DATE,
    `HUISHOUDENGROOTTE` VARCHAR(255),
    `HUISHOUDENNUMMER` VARCHAR(255),
    `HUISHOUDENSOORT` VARCHAR(255)
) ENGINE=InnoDB;

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

CREATE TABLE `NATIONALITEIT` (
    `NATIONALITEIT_ID` INT PRIMARY KEY,
    `BUITENLANDSE_NATIONALITEIT` BOOLEAN,
    `DATUM_EINDE_GELDIGHEID` DATE,
    `DATUM_INGANG_GELDIGHEID` DATE,
    `DATUM_OPNAMEN` DATE,
    `DATUM_VERLIES_NATIONALITEIT` DATE,
    `HEEFT_RECHTSPERSOON_ID` INT,
    `NATIONALITEITCODE` VARCHAR(255),
    `OMSCHRIJVING` VARCHAR(80),
    `REDENVERKRIJGINGNLNATIONALITEIT` VARCHAR(100),
    `REDENVERLIESNLNATIONALITEIT` VARCHAR(100)
) ENGINE=InnoDB;

CREATE TABLE `NIETNATUURLIJKPERSOON` (
    `RECHTSPERSOON_ID` INT PRIMARY KEY,
    `DATUMAANVANG` DATE,
    `DATUMEINDE` DATE,
    `DATUMUITSCHRIJVING` DATE,
    `DATUMVOORTZETTING` DATE,
    `FAXNUMMER` VARCHAR(20),
    `INGESCHREVEN` BOOLEAN,
    `INOPRICHTING` BOOLEAN,
    `KVKNUMMER` VARCHAR(255),
    `NNPID` VARCHAR(255),
    `RECHTSVORM` VARCHAR(255),
    `RSINNUMMER` VARCHAR(255),
    `STATUTAIRENAAM` VARCHAR(255),
    `STATUTAIREZETEL` VARCHAR(255),
    `WEBSITEURL` VARCHAR(200)
) ENGINE=InnoDB;

CREATE TABLE `INGEZETENE` (
    `RECHTSPERSOON_ID` INT PRIMARY KEY,
    `AANDUIDINGEUROPEESKIESRECHT` BOOLEAN,
    `AANDUIDINGUITGESLOTENKIESRECHT` BOOLEAN,
    `DATUMVERKRIJGINGVERBLIJFSTITEL` DATE,
    `DATUMVERLIESVERBLIJFSTITEL` DATE,
    `HEEFT_VERBLIJFSTITEL_ID` INT,
    `INDICATIEBLOKKERING` VARCHAR(255),
    `INDICATIECURATELEREGISTER` VARCHAR(255),
    `INDICATIEGEZAGMINDERJARIGE` VARCHAR(255)
) ENGINE=InnoDB;

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_HUISHOUDEN_ID` INT,
    `INDICATIEGEHEIM` BOOLEAN,
    `INGEZETENE` BOOLEAN,
    `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` BOOLEAN,
    `VERBLIJFSTITEL` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `KP_INGZTN_INGSCHRVNPRSN` (
    `KP_INGZTN_INGSCHRVNPRSN_ID` INT PRIMARY KEY,
    `INGEZETENE_ID` INT,
    `INGESCHREVENPERSOON_ID` INT
) ENGINE=InnoDB;

ALTER TABLE `NIETNATUURLIJKPERSOON` ADD CONSTRAINT FK_NIETNATUURLIJKPERSOON_GEN_RECHTSPERSOON FOREIGN KEY (`RECHTSPERSOON_ID`) REFERENCES `RECHTSPERSOON` (`RECHTSPERSOON_ID`);
-- Generalization to RECHTSPERSOON

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 `INGEZETENE` ADD CONSTRAINT FK_INGEZETENE_GEN_INGESCHREVENPERSOON FOREIGN KEY (`RECHTSPERSOON_ID`) REFERENCES `INGESCHREVENPERSOON` (`RECHTSPERSOON_ID`);
-- Generalization to INGESCHREVENPERSOON

ALTER TABLE `KP_INGZTN_INGSCHRVNPRSN` ADD CONSTRAINT FK_KP_INGZTN_INGSCHRVNPRSN_1 FOREIGN KEY (`INGEZETENE_ID`) REFERENCES `INGEZETENE` (`RECHTSPERSOON_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` (`RECHTSPERSOON_ID`);
-- INGESCHREVENPERSOON (many-to-many junction, Connector_ID: 1867)

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 `KP_NTNTRLJKPRSN_NTRLJKPRSN` ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_NTRLJKPRSN_1 FOREIGN KEY (`NIETNATUURLIJKPERSOON_ID`) REFERENCES `NIETNATUURLIJKPERSOON` (`RECHTSPERSOON_ID`);
-- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1970)

ALTER TABLE `KP_NTNTRLJKPRSN_NTRLJKPRSN` ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_NTRLJKPRSN_2 FOREIGN KEY (`NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`RECHTSPERSOON_ID`);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1970)

ALTER TABLE `KP_NTNTRLJKPRSN_RCHTSPRSN` ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_RCHTSPRSN_1 FOREIGN KEY (`NIETNATUURLIJKPERSOON_ID`) REFERENCES `NIETNATUURLIJKPERSOON` (`RECHTSPERSOON_ID`);
-- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1971)

ALTER TABLE `KP_NTNTRLJKPRSN_RCHTSPRSN` ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_RCHTSPRSN_2 FOREIGN KEY (`RECHTSPERSOON_ID`) REFERENCES `RECHTSPERSOON` (`RECHTSPERSOON_ID`);
-- RECHTSPERSOON (many-to-many junction, Connector_ID: 1971)

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 `INGEZETENE` ADD CONSTRAINT FK_INGEZETENE_HEEFT FOREIGN KEY (`HEEFT_VERBLIJFSTITEL_ID`) REFERENCES `VERBLIJFSTITEL` (`VERBLIJFSTITEL_ID`);
-- HEEFT (0..* to 0..1, Connector_ID: 1875)

ALTER TABLE `INGESCHREVENPERSOON` ADD CONSTRAINT FK_INGESCHREVENPERSOON_HEEFT FOREIGN KEY (`HEEFT_HUISHOUDEN_ID`) REFERENCES `HUISHOUDEN` (`HUISHOUDEN_ID`);
-- HEEFT (0..1 to 1..*, Connector_ID: 1955)

ALTER TABLE `NATIONALITEIT` ADD CONSTRAINT FK_NATIONALITEIT_HEEFT FOREIGN KEY (`HEEFT_RECHTSPERSOON_ID`) REFERENCES `RECHTSPERSOON` (`RECHTSPERSOON_ID`);
-- HEEFT (1 to 1..*, Connector_ID: 1956)

ALTER TABLE `RECHTSPERSOON` ADD CONSTRAINT FK_RECHTSPERSOON_HEEFT FOREIGN KEY (`HEEFT_ADRESBUITENLAND_ID`) REFERENCES `ADRESBUITENLAND` (`ADRESBUITENLAND_ID`);
-- HEEFT (1 to 0..1, Connector_ID: 1958)

