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 `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 `WERKGELEGENHEID` (
    `WERKGELEGENHEID_ID` INT PRIMARY KEY,
    `AANTALFULLTIMEMANNEN` INT,
    `AANTALFULLTIMEVROUWEN` INT,
    `AANTALPARTTIMEMANNEN` INT,
    `AANTALPARTTIMEVROUWEN` INT,
    `GROOTTEKLASSE` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `MAATSCHAPPELIJKEACTIVITEIT` (
    `MAATSCHAPPELIJKEACTIVITEIT_ID` INT PRIMARY KEY,
    `ADRESBINNENLAND` VARCHAR(255),
    `ADRESCORRESPONDENTIE` VARCHAR(100),
    `DATUMAANVANG` DATE,
    `DATUMEINDEGELDIG` DATE,
    `DATUMFAILLISEMENT` DATE,
    `INDICATIEECONOMISCHACTIEF` BOOLEAN,
    `IS_FUNCTIONARIS_VAN_NATUURLIJKPERSOON_ID` INT,
    `KVKNUMMER` VARCHAR(255),
    `RECHTSVORM` VARCHAR(100),
    `RSIN` VARCHAR(255),
    `STATUTAIRENAAM` VARCHAR(100),
    `TELEFOONNUMMER` VARCHAR(20),
    `URL` VARCHAR(100)
) ENGINE=InnoDB;

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

CREATE TABLE `VESTIGING` (
    `VESTIGING_ID` INT PRIMARY KEY,
    `COMMERCIELEVESTIGING` BOOLEAN,
    `DATUMAANVANG` DATE,
    `DATUMEINDE` DATE,
    `DATUMVOORTZETTING` DATE,
    `FULLTIMEWERKZAMEMANNEN` VARCHAR(255),
    `FULLTIMEWERKZAMEVROUWEN` VARCHAR(255),
    `HANDELSNAAM` VARCHAR(255),
    `HEEFT_NIETNATUURLIJKPERSOON_ID` INT,
    `HEEFT_WERKGELEGENHEID_ID` INT,
    `IS_HOOFDVESTIGING_VAN_MAATSCHAPPELIJKEACTIVITEIT_ID` INT,
    `PARTTIMEWERKZAMEMANNEN` VARCHAR(255),
    `PARTTIMEWERKZAMEVROUWEN` VARCHAR(255),
    `TOEVOEGINGADRES` VARCHAR(100),
    `TOTAALWERKZAMEPERSONEN` VARCHAR(255),
    `UITOEFENING_VAN_ACTIVITEITEN_MAATSCHAPPELIJKEACTIVITEIT_ID` INT,
    `VERKORTENAAM` VARCHAR(255),
    `VESTIGINGSNUMMER` VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE `CONTACT` (
    `CONTACT_ID` INT PRIMARY KEY,
    `BIJ_VESTIGING_ID` INT,
    `CONTACTSOORT` VARCHAR(80),
    `DATUM` DATE,
    `TEKST` TEXT
) ENGINE=InnoDB;

CREATE TABLE `HOTEL` (
    `VESTIGING_ID` INT PRIMARY KEY,
    `AANTALKAMERS` INT
) ENGINE=InnoDB;

CREATE TABLE `VERKOOPPUNT` (
    `VESTIGING_ID` INT PRIMARY KEY,
    `WINKELFORMULE` VARCHAR(80)
) ENGINE=InnoDB;

CREATE TABLE `HOTELBEZOEK` (
    `HOTELBEZOEK_ID` INT PRIMARY KEY,
    `DATUMEINDE` DATE,
    `DATUMSTART` DATE,
    `HEEFT_VESTIGING_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_CNTCT_NTRLJKPRSN` (
    `KP_CNTCT_NTRLJKPRSN_ID` INT PRIMARY KEY,
    `CONTACT_ID` INT,
    `NATUURLIJKPERSOON_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_HTL_VSTGNG` (
    `KP_HTL_VSTGNG_ID` INT PRIMARY KEY,
    `HOTEL_ID` INT,
    `VESTIGING_ID` INT
) ENGINE=InnoDB;

CREATE TABLE `KP_VRKPPNT_VSTGNG` (
    `KP_VRKPPNT_VSTGNG_ID` INT PRIMARY KEY,
    `VERKOOPPUNT_ID` INT,
    `VESTIGING_ID` INT
) ENGINE=InnoDB;

ALTER TABLE `HOTEL` ADD CONSTRAINT FK_HOTEL_GEN_VESTIGING FOREIGN KEY (`VESTIGING_ID`) REFERENCES `VESTIGING` (`VESTIGING_ID`);
-- Generalization to VESTIGING

ALTER TABLE `VERKOOPPUNT` ADD CONSTRAINT FK_VERKOOPPUNT_GEN_VESTIGING FOREIGN KEY (`VESTIGING_ID`) REFERENCES `VESTIGING` (`VESTIGING_ID`);
-- Generalization to VESTIGING

ALTER TABLE `KP_VRKPPNT_VSTGNG` ADD CONSTRAINT FK_KP_VRKPPNT_VSTGNG_1 FOREIGN KEY (`VERKOOPPUNT_ID`) REFERENCES `VERKOOPPUNT` (`VESTIGING_ID`);
-- VERKOOPPUNT (many-to-many junction, Connector_ID: 1253)

ALTER TABLE `KP_VRKPPNT_VSTGNG` ADD CONSTRAINT FK_KP_VRKPPNT_VSTGNG_2 FOREIGN KEY (`VESTIGING_ID`) REFERENCES `VESTIGING` (`VESTIGING_ID`);
-- VESTIGING (many-to-many junction, Connector_ID: 1253)

ALTER TABLE `KP_HTL_VSTGNG` ADD CONSTRAINT FK_KP_HTL_VSTGNG_1 FOREIGN KEY (`HOTEL_ID`) REFERENCES `HOTEL` (`VESTIGING_ID`);
-- HOTEL (many-to-many junction, Connector_ID: 1255)

ALTER TABLE `KP_HTL_VSTGNG` ADD CONSTRAINT FK_KP_HTL_VSTGNG_2 FOREIGN KEY (`VESTIGING_ID`) REFERENCES `VESTIGING` (`VESTIGING_ID`);
-- VESTIGING (many-to-many junction, Connector_ID: 1255)

ALTER TABLE `KP_CNTCT_NTRLJKPRSN` ADD CONSTRAINT FK_KP_CNTCT_NTRLJKPRSN_1 FOREIGN KEY (`CONTACT_ID`) REFERENCES `CONTACT` (`CONTACT_ID`);
-- CONTACT (many-to-many junction, Connector_ID: 1257)

ALTER TABLE `KP_CNTCT_NTRLJKPRSN` ADD CONSTRAINT FK_KP_CNTCT_NTRLJKPRSN_2 FOREIGN KEY (`NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1257)

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 `HOTELBEZOEK` ADD CONSTRAINT FK_HOTELBEZOEK_HEEFT FOREIGN KEY (`HEEFT_VESTIGING_ID`) REFERENCES `VESTIGING` (`VESTIGING_ID`);
-- HEEFT (1 to 0..*, Connector_ID: 1254)

ALTER TABLE `CONTACT` ADD CONSTRAINT FK_CONTACT_BIJ FOREIGN KEY (`BIJ_VESTIGING_ID`) REFERENCES `VESTIGING` (`VESTIGING_ID`);
-- BIJ (0..* to 0..1, Connector_ID: 1256)

ALTER TABLE `VESTIGING` ADD CONSTRAINT FK_VESTIGING_HEEFT FOREIGN KEY (`HEEFT_WERKGELEGENHEID_ID`) REFERENCES `WERKGELEGENHEID` (`WERKGELEGENHEID_ID`);
-- HEEFT (1 to 0..1, Connector_ID: 1857)

ALTER TABLE `VESTIGING` ADD CONSTRAINT FK_VESTIGING_IS_HOOFDVESTIGING_VAN FOREIGN KEY (`IS_HOOFDVESTIGING_VAN_MAATSCHAPPELIJKEACTIVITEIT_ID`) REFERENCES `MAATSCHAPPELIJKEACTIVITEIT` (`MAATSCHAPPELIJKEACTIVITEIT_ID`);
-- IS_HOOFDVESTIGING_VAN (0..1 to 0..1, Connector_ID: 1959)

ALTER TABLE `VESTIGING` ADD CONSTRAINT FK_VESTIGING_UITOEFENING_VAN_ACTIVITEITEN FOREIGN KEY (`UITOEFENING_VAN_ACTIVITEITEN_MAATSCHAPPELIJKEACTIVITEIT_ID`) REFERENCES `MAATSCHAPPELIJKEACTIVITEIT` (`MAATSCHAPPELIJKEACTIVITEIT_ID`);
-- UITOEFENING_VAN_ACTIVITEITEN (0..* to 1, Connector_ID: 1961)

ALTER TABLE `MAATSCHAPPELIJKEACTIVITEIT` ADD CONSTRAINT FK_MAATSCHAPPELIJKEACTIVITEIT_IS_FUNCTIONARIS_VAN FOREIGN KEY (`IS_FUNCTIONARIS_VAN_NATUURLIJKPERSOON_ID`) REFERENCES `NATUURLIJKPERSOON` (`NATUURLIJKPERSOON_ID`);
-- IS_FUNCTIONARIS_VAN (0..* to 1.., Connector_ID: 1962)

ALTER TABLE `VESTIGING` ADD CONSTRAINT FK_VESTIGING_HEEFT_2 FOREIGN KEY (`HEEFT_NIETNATUURLIJKPERSOON_ID`) REFERENCES `NIETNATUURLIJKPERSOON` (`NIETNATUURLIJKPERSOON_ID`);
-- HEEFT (1 to 0..*, Connector_ID: 1968)

