CREATE TABLE NATUURLIJKPERSOON ( RECHTSPERSOON_ID INTEGER 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_ENUM_ID INTEGER, INDICATIEOVERLEDEN_ENUM_ID INTEGER, LANDOVERLIJDEN VARCHAR(255), NATIONALITEIT VARCHAR(100), OVERLIJDENSPLAATS VARCHAR(200), VOORLETTERSAANSCHRIJVING VARCHAR(20), VOORNAMEN VARCHAR(200), VOORNAMENAANSCHRIJVING VARCHAR(200), VOORVOEGSELGESLACHTSNAAM VARCHAR(80) ); CREATE TABLE KP_NTRLJKPRSN_RCHTSPRSN ( KP_NTRLJKPRSN_RCHTSPRSN_ID INTEGER PRIMARY KEY, NATUURLIJKPERSOON_ID INTEGER, RECHTSPERSOON_ID INTEGER ); CREATE TABLE ADRESSEERBAAROBJECT ( ADRESSEERBAAROBJECT_ID INTEGER PRIMARY KEY, HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID INTEGER, IDENTIFICATIE VARCHAR(255), TYPEADRESSEERBAAROBJECT VARCHAR(255), VERSIE INTEGER ); CREATE TABLE KP_NTNTRLJKPRSN_RCHTSPRSN ( KP_NTNTRLJKPRSN_RCHTSPRSN_ID INTEGER PRIMARY KEY, NIETNATUURLIJKPERSOON_ID INTEGER, RECHTSPERSOON_ID INTEGER ); CREATE TABLE SBIACTIVITEIT ( SBIACTIVITEIT_ID INTEGER PRIMARY KEY, DATUMEINDESBIACTIVITEIT DATE, DATUMINGANGSBIACTIVITEIT DATE, HOOFDNIVEAU VARCHAR(255), HOOFDNIVEAUOMSCHRIJVING VARCHAR(100), NAAMACTIVITEIT VARCHAR(255), SBICODE VARCHAR(255), SBIGROEP VARCHAR(255), SBIGROEPOMSCHRIJVING VARCHAR(100) ); CREATE TABLE MAATSCHAPPELIJKEACTIVITEIT ( MAATSCHAPPELIJKEACTIVITEIT_ID INTEGER PRIMARY KEY, ADRESBINNENLAND VARCHAR(255), ADRESCORRESPONDENTIE VARCHAR(100), DATUMAANVANG DATE, DATUMEINDEGELDIG DATE, DATUMFAILLISEMENT DATE, HEEFT_ALS_EIGENAAR_RECHTSPERSOON_ID INTEGER, INDICATIEECONOMISCHACTIEF_ENUM_ID INTEGER, IS_FUNCTIONARIS_VAN_RECHTSPERSOON_ID INTEGER, KVKNUMMER VARCHAR(255), RECHTSVORM VARCHAR(100), RSIN VARCHAR(255), STATUTAIRENAAM VARCHAR(100), TELEFOONNUMMER VARCHAR(20), URL VARCHAR(100) ); CREATE TABLE NIETNATUURLIJKPERSOON ( RECHTSPERSOON_ID INTEGER PRIMARY KEY, DATUMAANVANG DATE, DATUMEINDE DATE, DATUMUITSCHRIJVING DATE, DATUMVOORTZETTING DATE, FAXNUMMER VARCHAR(20), INGESCHREVEN_ENUM_ID INTEGER, INOPRICHTING_ENUM_ID INTEGER, KVKNUMMER VARCHAR(255), NNPID VARCHAR(255), RECHTSVORM_ENUM_ID INTEGER, RSINNUMMER VARCHAR(255), STATUTAIRENAAM VARCHAR(255), STATUTAIREZETEL VARCHAR(255), WEBSITEURL VARCHAR(200) ); CREATE TABLE VESTIGING ( VESTIGING_ID INTEGER PRIMARY KEY, COMMERCIELEVESTIGING_ENUM_ID INTEGER, DATUMAANVANG DATE, DATUMEINDE DATE, DATUMVOORTZETTING DATE, FULLTIMEWERKZAMEMANNEN VARCHAR(255), FULLTIMEWERKZAMEVROUWEN VARCHAR(255), HANDELSNAAM VARCHAR(255), HEEFT_ALS_LOCATIE_ADRES_NUMMERAANDUIDING_ID INTEGER, HEEFT_HOOFDLOCATIE_IN_OF_OP_ADRESSEERBAAROBJECT_ID INTEGER, HEEFT_NEVENLOCATIE_IN_OF_OP_ADRESSEERBAAROBJECT_ID INTEGER, HEEFT_RECHTSPERSOON_ID INTEGER, IS_HOOFDVESTIGING_VAN_MAATSCHAPPELIJKEACTIVITEIT_ID INTEGER, PARTTIMEWERKZAMEMANNEN VARCHAR(255), PARTTIMEWERKZAMEVROUWEN VARCHAR(255), TOEVOEGINGADRES VARCHAR(100), TOTAALWERKZAMEPERSONEN VARCHAR(255), UITOEFENING_VAN_ACTIVITEITEN_MAATSCHAPPELIJKEACTIVITEIT_ID INTEGER, VERKORTENAAM VARCHAR(255), VESTIGINGSNUMMER VARCHAR(255) ); CREATE TABLE SBIACTIVITEITVESTIGING ( SBIACTIVITEITVESTIGING_ID INTEGER PRIMARY KEY, INDICATIEHOOFDACTIVITEIT VARCHAR(100), SBICODE VARCHAR(50), VESTIGING_ID INTEGER ); CREATE TABLE NUMMERAANDUIDING ( NUMMERAANDUIDING_ID INTEGER PRIMARY KEY, BEGINGELDIGHEID DATE, DATUMEINDE DATE, DATUMINGANG DATE, DOCUMENTDATUM DATE, DOCUMENTNUMMER INTEGER, EINDEGELDIGHEID DATE, GECONSTATEERD_ENUM_ID INTEGER, GEOMETRIE GEOMETRY, HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID INTEGER, HUISLETTER VARCHAR(255), HUISNUMMER VARCHAR(255), HUISNUMMERTOEVOEGING VARCHAR(255), IDENTIFICATIE VARCHAR(255), POSTCODE VARCHAR(255), STATUS VARCHAR(255), TYPEADRESSEERBAAROBJECT VARCHAR(255), VERSIE INTEGER ); CREATE TABLE RECHTSPERSOON ( RECHTSPERSOON_ID INTEGER 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 SOORTRECHTSVORM_ENUM ( SOORTRECHTSVORM_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO SOORTRECHTSVORM_ENUM (SOORTRECHTSVORM_ENUM_ID, VALUE) VALUES (1, 'BESLOTEN_VENNOOTSCHAP'), (2, 'COMMANDITAIRE_VENNOOTSCHAP'), (3, 'COOPERATIE_EUROPEES_ECONOMISCHE_SAMENWERKING'), (4, 'EUROPESE_COOPERATIEVE_VENNOOTSCHAP'), (5, 'EUROPESE_NAAMLOZE_VENNOOTSCHAP'), (6, 'KAPITAALVENNOOTSCHAP_BINNEN_EER'), (7, 'KAPITAALVENNOOTSCHAP_BUITEN_EER'), (8, 'KERKELIJKE_ORGANISATIE'), (9, 'LEEG'), (10, 'MAATSCHAP'), (11, 'NAAMLOZE_VENNOOTSCHAP'), (12, 'ONBEKEND'), (13, 'ONDERLINGE_WAARBORG_MAATSCHAPPIJ'), (14, 'OVERIGE_BUITENLANDSE_RECHTSPERSOON_VENNOOTSCHAP'), (15, 'OVERIG_PRIVAATRECHTELIJKE_RECHTSPERSOON'), (16, 'PUBLIEKRECHTELIJKE_RECHTSPERSOON'), (17, 'REDERIJ'), (18, 'STICHTING'), (19, 'VENNOOTSCHAP_ONDER_FIRMA'), (20, 'VERENIGING'), (21, 'VERENIGING_VAN_EIGENAARS'); CREATE TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN ( KP_NTNTRLJKPRSN_NTRLJKPRSN_ID INTEGER PRIMARY KEY, NIETNATUURLIJKPERSOON_ID INTEGER, NATUURLIJKPERSOON_ID INTEGER ); CREATE TABLE BOOLEAN_ENUM ( BOOLEAN_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO BOOLEAN_ENUM (BOOLEAN_ENUM_ID, VALUE) VALUES (1, 'JA'), (2, 'LEEG'), (3, 'NEE'), (4, 'ONBEKEND'); 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 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 SBIACTIVITEITVESTIGING ADD CONSTRAINT FK_SBIACTIVITEITVESTIGING_VESTIGING FOREIGN KEY (VESTIGING_ID) REFERENCES VESTIGING (VESTIGING_ID); -- unnamed (1 to 1..*, Connector_ID: 1861) 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 MAATSCHAPPELIJKEACTIVITEIT ADD CONSTRAINT FK_MAATSCHAPPELIJKEACTIVITEIT_HEEFT_ALS_EIGENAAR FOREIGN KEY (HEEFT_ALS_EIGENAAR_RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- HEEFT_ALS_EIGENAAR (0..1 to 1, Connector_ID: 1960) 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_RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- IS_FUNCTIONARIS_VAN (0..* to 1.., Connector_ID: 1962) ALTER TABLE VESTIGING ADD CONSTRAINT FK_VESTIGING_HEEFT FOREIGN KEY (HEEFT_RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- HEEFT (1 to 0..*, Connector_ID: 1968) ALTER TABLE VESTIGING ADD CONSTRAINT FK_VESTIGING_HEEFT_HOOFDLOCATIE_IN_OF_OP FOREIGN KEY (HEEFT_HOOFDLOCATIE_IN_OF_OP_ADRESSEERBAAROBJECT_ID) REFERENCES ADRESSEERBAAROBJECT (ADRESSEERBAAROBJECT_ID); -- HEEFT_HOOFDLOCATIE_IN_OF_OP (0..* to 0..1, Connector_ID: 2240) ALTER TABLE VESTIGING ADD CONSTRAINT FK_VESTIGING_HEEFT_NEVENLOCATIE_IN_OF_OP FOREIGN KEY (HEEFT_NEVENLOCATIE_IN_OF_OP_ADRESSEERBAAROBJECT_ID) REFERENCES ADRESSEERBAAROBJECT (ADRESSEERBAAROBJECT_ID); -- HEEFT_NEVENLOCATIE_IN_OF_OP (0..* to 0..1, Connector_ID: 2244) ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_HEEFT_ALS_NEVENADRES FOREIGN KEY (HEEFT_ALS_NEVENADRES_ADRESSEERBAAROBJECT_ID) REFERENCES ADRESSEERBAAROBJECT (ADRESSEERBAAROBJECT_ID); -- HEEFT_ALS_NEVENADRES (1 to 0..*, Connector_ID: 2268) ALTER TABLE ADRESSEERBAAROBJECT ADD CONSTRAINT FK_ADRESSEERBAAROBJECT_HEEFT_ALS_HOOFDADRES FOREIGN KEY (HEEFT_ALS_HOOFDADRES_NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID); -- HEEFT_ALS_HOOFDADRES (1 to 1, Connector_ID: 2274) ALTER TABLE VESTIGING ADD CONSTRAINT FK_VESTIGING_HEEFT_ALS_LOCATIE_ADRES FOREIGN KEY (HEEFT_ALS_LOCATIE_ADRES_NUMMERAANDUIDING_ID) REFERENCES NUMMERAANDUIDING (NUMMERAANDUIDING_ID); -- HEEFT_ALS_LOCATIE_ADRES (1 to 0..*, Connector_ID: 2282) ALTER TABLE NUMMERAANDUIDING ADD CONSTRAINT FK_NUMMERAANDUIDING_GECONSTATEERD_ENUM_ID FOREIGN KEY (GECONSTATEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- GECONSTATEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE NIETNATUURLIJKPERSOON ADD CONSTRAINT FK_NIETNATUURLIJKPERSOON_RECHTSVORM_ENUM_ID FOREIGN KEY (RECHTSVORM_ENUM_ID_SOORTRECHTSVORM_ENUM_ID) REFERENCES SOORTRECHTSVORM_ENUM (SOORTRECHTSVORM_ENUM_ID); -- RECHTSVORM_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE NIETNATUURLIJKPERSOON ADD CONSTRAINT FK_NIETNATUURLIJKPERSOON_INOPRICHTING_ENUM_ID FOREIGN KEY (INOPRICHTING_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- INOPRICHTING_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE NIETNATUURLIJKPERSOON ADD CONSTRAINT FK_NIETNATUURLIJKPERSOON_INGESCHREVEN_ENUM_ID FOREIGN KEY (INGESCHREVEN_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- INGESCHREVEN_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE MAATSCHAPPELIJKEACTIVITEIT ADD CONSTRAINT FK_MAATSCHAPPELIJKEACTIVITEIT_INDICATIEECONOMISCHACTIEF_ENUM_ID FOREIGN KEY (INDICATIEECONOMISCHACTIEF_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- INDICATIEECONOMISCHACTIEF_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE NATUURLIJKPERSOON ADD CONSTRAINT FK_NATUURLIJKPERSOON_INDICATIEOVERLEDEN_ENUM_ID FOREIGN KEY (INDICATIEOVERLEDEN_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- INDICATIEOVERLEDEN_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE NATUURLIJKPERSOON ADD CONSTRAINT FK_NATUURLIJKPERSOON_INDICATIEAFSCHERMINGPERSOONSGEGEVENS_ENUM_ID FOREIGN KEY (INDICATIEAFSCHERMINGPERSOONSGEGEVENS_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- INDICATIEAFSCHERMINGPERSOONSGEGEVENS_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE VESTIGING ADD CONSTRAINT FK_VESTIGING_COMMERCIELEVESTIGING_ENUM_ID FOREIGN KEY (COMMERCIELEVESTIGING_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- COMMERCIELEVESTIGING_ENUM_ID (1 to 1, Connector_ID: enum_ref)