CREATE TABLE `NATUURLIJKPERSOON` (
    `NATUURLIJKPERSOON_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 `MEDEWERKER` (
    `MEDEWERKER_ID` INT PRIMARY KEY,
    `ACHTERNAAM` VARCHAR(200),
    `DATUMINDIENST` DATE,
    `DATUMUITDIENST` DATE,
    `EMAILADRES` VARCHAR(255),
    `EXTERN` BOOLEAN,
    `FUNCTIE` VARCHAR(50),
    `GESLACHTSAANDUIDING` VARCHAR(255),
    `MEDEWERKERIDENTIFICATIE` VARCHAR(255),
    `MEDEWERKERTOELICHTING` VARCHAR(255),
    `ROEPNAAM` VARCHAR(255),
    `TELEFOONNUMMER` VARCHAR(20),
    `VOORLETTERS` VARCHAR(20),
    `VOORVOEGSELACHTERNAAM` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `NIETNATUURLIJKPERSOON` (
    `NIETNATUURLIJKPERSOON_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 `SOLLICITANT` (
    `NATUURLIJKPERSOON_ID` INT PRIMARY KEY
) ENGINE=InnoDB;

CREATE TABLE `WERKNEMER` (
    `MEDEWERKER_ID` INT PRIMARY KEY,
    `GEBOORTEDATUM` DATE,
    `IS_PARTNER_VAN_NATUURLIJKPERSOON_ID` INT,
    `NAAM` VARCHAR(80),
    `VOORNAAM` VARCHAR(255),
    `WOONPLAATS` VARCHAR(50)
) ENGINE=InnoDB;

CREATE TABLE `RELATIE` (
    `NATUURLIJKPERSOON_ID` INT PRIMARY KEY,
    `IS_KIND_VAN_MEDEWERKER_ID` INT
) ENGINE=InnoDB;

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

CREATE TABLE `ONDERWIJSINSTITUUT` (
    `NIETNATUURLIJKPERSOON_ID` INT PRIMARY KEY
) ENGINE=InnoDB;

CREATE TABLE `KP_SLLCTNT_NTRLJKPRSN` (
    `KP_SLLCTNT_NTRLJKPRSN_ID` INT PRIMARY KEY,
    `SOLLICITANT_ID` INT,
    `NATUURLIJKPERSOON_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_WRKNMR_MDWRKR` (
    `KP_WRKNMR_MDWRKR_ID` INT PRIMARY KEY,
    `WERKNEMER_ID` INT,
    `MEDEWERKER_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_RLT_NTRLJKPRSN` (
    `KP_RLT_NTRLJKPRSN_ID` INT PRIMARY KEY,
    `RELATIE_ID` INT,
    `NATUURLIJKPERSOON_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_ONDRWJSNSTTT_NTNTRLJKPRSN` (
    `KP_ONDRWJSNSTTT_NTNTRLJKPRSN_ID` INT PRIMARY KEY,
    `ONDERWIJSINSTITUUT_ID` INT,
    `NIETNATUURLIJKPERSOON_ID` INT
) ENGINE=InnoDB;

ALTER TABLE `ONDERWIJSINSTITUUT` ADD CONSTRAINT FK_ONDERWIJSINSTITUUT_GEN_NIETNATUURLIJKPERSOON FOREIGN KEY (`NIETNATUURLIJKPERSOON_ID`) REFERENCES `NIETNATUURLIJKPERSOON` (`NIETNATUURLIJKPERSOON_ID`);
-- Generalization to NIETNATUURLIJKPERSOON

ALTER TABLE `RELATIE` ADD CONSTRAINT FK_RELATIE_GEN_NATUURLIJKPERSOON FOREIGN KEY (`NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- Generalization to NATUURLIJKPERSOON

ALTER TABLE `SOLLICITANT` ADD CONSTRAINT FK_SOLLICITANT_GEN_NATUURLIJKPERSOON FOREIGN KEY (`NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- Generalization to NATUURLIJKPERSOON

ALTER TABLE `WERKNEMER` ADD CONSTRAINT FK_WERKNEMER_GEN_MEDEWERKER FOREIGN KEY (`MEDEWERKER_ID`) REFERENCES `MEDEWERKER` (`MEDEWERKER_ID`);
-- Generalization to MEDEWERKER

ALTER TABLE `KP_WRKNMR_MDWRKR` ADD CONSTRAINT FK_KP_WRKNMR_MDWRKR_1 FOREIGN KEY (`WERKNEMER_ID`) REFERENCES `WERKNEMER` (`MEDEWERKER_ID`);
-- WERKNEMER (many-to-many junction, Connector_ID: 431)

ALTER TABLE `KP_WRKNMR_MDWRKR` ADD CONSTRAINT FK_KP_WRKNMR_MDWRKR_2 FOREIGN KEY (`MEDEWERKER_ID`) REFERENCES `MEDEWERKER` (`MEDEWERKER_ID`);
-- MEDEWERKER (many-to-many junction, Connector_ID: 431)

ALTER TABLE `KP_SLLCTNT_NTRLJKPRSN` ADD CONSTRAINT FK_KP_SLLCTNT_NTRLJKPRSN_1 FOREIGN KEY (`SOLLICITANT_ID`) REFERENCES `SOLLICITANT` (`NATUURLIJKPERSOON_ID`);
-- SOLLICITANT (many-to-many junction, Connector_ID: 442)

ALTER TABLE `KP_SLLCTNT_NTRLJKPRSN` ADD CONSTRAINT FK_KP_SLLCTNT_NTRLJKPRSN_2 FOREIGN KEY (`NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 442)

ALTER TABLE `KP_RLT_NTRLJKPRSN` ADD CONSTRAINT FK_KP_RLT_NTRLJKPRSN_1 FOREIGN KEY (`RELATIE_ID`) REFERENCES `RELATIE` (`NATUURLIJKPERSOON_ID`);
-- RELATIE (many-to-many junction, Connector_ID: 446)

ALTER TABLE `KP_RLT_NTRLJKPRSN` ADD CONSTRAINT FK_KP_RLT_NTRLJKPRSN_2 FOREIGN KEY (`NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 446)

ALTER TABLE `KP_ONDRWJSNSTTT_NTNTRLJKPRSN` ADD CONSTRAINT FK_KP_ONDRWJSNSTTT_NTNTRLJKPRSN_1 FOREIGN KEY (`ONDERWIJSINSTITUUT_ID`) REFERENCES `ONDERWIJSINSTITUUT` (`NIETNATUURLIJKPERSOON_ID`);
-- ONDERWIJSINSTITUUT (many-to-many junction, Connector_ID: 450)

ALTER TABLE `KP_ONDRWJSNSTTT_NTNTRLJKPRSN` ADD CONSTRAINT FK_KP_ONDRWJSNSTTT_NTNTRLJKPRSN_2 FOREIGN KEY (`NIETNATUURLIJKPERSOON_ID`) REFERENCES `NIETNATUURLIJKPERSOON` (`NIETNATUURLIJKPERSOON_ID`);
-- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 450)

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

ALTER TABLE `WERKNEMER` ADD CONSTRAINT FK_WERKNEMER_IS_PARTNER_VAN FOREIGN KEY (`IS_PARTNER_VAN_NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- IS_PARTNER_VAN (1 to 0..1, Connector_ID: 444)

ALTER TABLE `RELATIE` ADD CONSTRAINT FK_RELATIE_IS_KIND_VAN FOREIGN KEY (`IS_KIND_VAN_MEDEWERKER_ID`) REFERENCES `MEDEWERKER` (`MEDEWERKER_ID`);
-- IS_KIND_VAN (0..* to 1, Connector_ID: 445)

