CREATE TABLE NIETNATUURLIJKPERSOON (
    NIETNATUURLIJKPERSOON_ID NUMBER PRIMARY KEY,
    DATUMAANVANG DATE,
    DATUMEINDE DATE,
    DATUMUITSCHRIJVING DATE,
    DATUMVOORTZETTING DATE,
    FAXNUMMER VARCHAR2(20),
    INGESCHREVEN NUMBER(1),
    INOPRICHTING NUMBER(1),
    KVKNUMMER VARCHAR2(255),
    NNPID VARCHAR2(255),
    RECHTSVORM VARCHAR2(255),
    RSINNUMMER VARCHAR2(255),
    STATUTAIRENAAM VARCHAR2(255),
    STATUTAIREZETEL VARCHAR2(255),
    WEBSITEURL VARCHAR2(200)
);

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

CREATE TABLE ORGANISATORISCHEEENHEID (
    ORGANISATORISCHEEENHEID_ID NUMBER PRIMARY KEY,
    DATUMONTSTAAN DATE,
    DATUMOPHEFFING DATE,
    EMAILADRES VARCHAR2(255),
    FAXNUMMER VARCHAR2(20),
    FORMATIE VARCHAR2(255),
    IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID NUMBER,
    NAAM VARCHAR2(50),
    NAAMVERKORT VARCHAR2(255),
    OMSCHRIJVING VARCHAR2(80),
    ORGANISATIEIDENTIFICATIE VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20),
    TOELICHTING VARCHAR2(255)
);

CREATE TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN (
    KP_NTNTRLJKPRSN_NTRLJKPRSN_ID NUMBER PRIMARY KEY,
    NIETNATUURLIJKPERSOON_ID NUMBER,
    NATUURLIJKPERSOON_ID NUMBER
);

CREATE TABLE MEDEWERKER (
    MEDEWERKER_ID NUMBER PRIMARY KEY,
    ACHTERNAAM VARCHAR2(200),
    DATUMINDIENST DATE,
    DATUMUITDIENST DATE,
    EMAILADRES VARCHAR2(255),
    EXTERN NUMBER(1),
    FUNCTIE VARCHAR2(50),
    GESLACHTSAANDUIDING VARCHAR2(255),
    IS_CONTACTPERSOON_VOOR_ORGANISATORISCHEEENHEID_ID NUMBER,
    IS_VERANTWOORDELIJK_VOOR_ORGANISATORISCHEEENHEID_ID NUMBER,
    MEDEWERKERIDENTIFICATIE VARCHAR2(255),
    MEDEWERKERTOELICHTING VARCHAR2(255),
    ROEPNAAM VARCHAR2(255),
    TELEFOONNUMMER VARCHAR2(20),
    VOORLETTERS VARCHAR2(20),
    VOORVOEGSELACHTERNAAM VARCHAR2(255)
);

CREATE TABLE KP_MDWRKR_ORGNSTRSCHNHD (
    KP_MDWRKR_ORGNSTRSCHNHD_ID NUMBER PRIMARY KEY,
    MEDEWERKER_ID NUMBER,
    ORGANISATORISCHEEENHEID_ID NUMBER
);

CREATE TABLE BETROKKENE (
    BETROKKENE_ID NUMBER PRIMARY KEY,
    ADRESBINNENLAND VARCHAR2(255),
    ADRESBUITENLAND VARCHAR2(200),
    IDENTIFICATIE VARCHAR2(50),
    IS_MEDEWERKER_ID NUMBER,
    IS_NATUURLIJKPERSOON_ID NUMBER,
    IS_NIETNATUURLIJKPERSOON_ID NUMBER,
    IS_ORGANISATORISCHEEENHEID_ID NUMBER,
    NAAM VARCHAR2(200)
);

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 KP_MDWRKR_ORGNSTRSCHNHD ADD CONSTRAINT FK_KP_MDWRKR_ORGNSTRSCHNHD_1 FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- MEDEWERKER (many-to-many junction, Connector_ID: 2175)

ALTER TABLE KP_MDWRKR_ORGNSTRSCHNHD ADD CONSTRAINT FK_KP_MDWRKR_ORGNSTRSCHNHD_2 FOREIGN KEY (ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- ORGANISATORISCHEEENHEID (many-to-many junction, Connector_ID: 2175)

ALTER TABLE ORGANISATORISCHEEENHEID ADD CONSTRAINT FK_ORGANISATORISCHEEENHEID_IS_DEEL_VAN FOREIGN KEY (IS_DEEL_VAN_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_DEEL_VAN (1 to 0..1, Connector_ID: 2059)

ALTER TABLE BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS FOREIGN KEY (IS_NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID);
-- IS (0..1 to 1, Connector_ID: 2159)

ALTER TABLE BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS_2 FOREIGN KEY (IS_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS (0..1 to 1, Connector_ID: 2161)

ALTER TABLE BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS_3 FOREIGN KEY (IS_NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID);
-- IS (0..1 to 1, Connector_ID: 2163)

ALTER TABLE MEDEWERKER ADD CONSTRAINT FK_MEDEWERKER_IS_VERANTWOORDELIJK_VOOR FOREIGN KEY (IS_VERANTWOORDELIJK_VOOR_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_VERANTWOORDELIJK_VOOR (0..1 to 0..1, Connector_ID: 2166)

ALTER TABLE BETROKKENE ADD CONSTRAINT FK_BETROKKENE_IS_4 FOREIGN KEY (IS_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- IS (0..1 to 1, Connector_ID: 2167)

ALTER TABLE MEDEWERKER ADD CONSTRAINT FK_MEDEWERKER_IS_CONTACTPERSOON_VOOR FOREIGN KEY (IS_CONTACTPERSOON_VOOR_ORGANISATORISCHEEENHEID_ID) REFERENCES ORGANISATORISCHEEENHEID (ORGANISATORISCHEEENHEID_ID);
-- IS_CONTACTPERSOON_VOOR (0..1 to 0..1, Connector_ID: 2185)

