CREATE TABLE CONTACTPERSOON ( CONTACTPERSOON_ID INTEGER PRIMARY KEY, EMAIL VARCHAR(255), FUNCTIETITEL VARCHAR(200), NAAM VARCHAR(200), TELEFOONNUMMER VARCHAR(200) ); CREATE TABLE ENUMSCHULDENSOORT_ENUM ( ENUMSCHULDENSOORT_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO ENUMSCHULDENSOORT_ENUM (ENUMSCHULDENSOORT_ENUM_ID, VALUE) VALUES (1, 'NUTS'), (2, 'OVERIG'), (3, 'PUBLIEK'), (4, 'ZORG'); CREATE TABLE ENUMBEGELEIDINGSSOORT_ENUM ( ENUMBEGELEIDINGSSOORT_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO ENUMBEGELEIDINGSSOORT_ENUM (ENUMBEGELEIDINGSSOORT_ENUM_ID, VALUE) VALUES (1, 'BESCHERMINGSBEWIND'), (2, 'BUDGETBEGELEIDING'), (3, 'BUDGETBEHEER'), (4, 'BUDGETCOACHING'), (5, 'LANGE_TERMIJN_BEGELEIDING_DFD_'); CREATE TABLE ENUMOPLOSSINGSSOORT_ENUM ( ENUMOPLOSSINGSSOORT_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO ENUMOPLOSSINGSSOORT_ENUM (ENUMOPLOSSINGSSOORT_ENUM_ID, VALUE) VALUES (1, '0_AANBOD'), (2, 'BETALINGSREGELING'), (3, 'HERFINANCIERING'), (4, 'SANERINGSKREDIET'), (5, 'SCHULDBEMIDDELING'); CREATE TABLE NIETNATUURLIJKPERSOON ( NIETNATUURLIJKPERSOON_ID INTEGER 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) ); CREATE TABLE OPLOSSINGSSOORT ( OPLOSSINGSSOORT_ID INTEGER PRIMARY KEY, SOORT_ENUM_ID INTEGER ); CREATE TABLE BEGELEIDINGSSOORT ( BEGELEIDINGSSOORT_ID INTEGER PRIMARY KEY, SOORT_ENUM_ID INTEGER ); CREATE TABLE SCHULDHULPORGANISATIE ( NIETNATUURLIJKPERSOON_ID INTEGER PRIMARY KEY, NAAM VARCHAR(200) ); CREATE TABLE OPLOSSING ( OPLOSSING_ID INTEGER PRIMARY KEY, EINDDATUM DATE, SOORT_ENUM_ID INTEGER, SOORT_OPLOSSINGSSOORT_ID INTEGER, STARTDATUM DATE, VTLB VARCHAR(255) ); CREATE TABLE KP_SCHLDHLPRGNST_BGLDNGSSRT ( KP_SCHLDHLPRGNST_BGLDNGSSRT_ID INTEGER PRIMARY KEY, SCHULDHULPORGANISATIE_ID INTEGER, BEGELEIDINGSSOORT_ID INTEGER ); CREATE TABLE KP_SCHLDHLPRGNST_NTNTRLJKPRSN ( KP_SCHLDHLPRGNST_NTNTRLJKPRSN_ID INTEGER PRIMARY KEY, SCHULDHULPORGANISATIE_ID INTEGER, NIETNATUURLIJKPERSOON_ID INTEGER ); CREATE TABLE KP_SCHLDHLPRGNST_CNTCTPRSN ( KP_SCHLDHLPRGNST_CNTCTPRSN_ID INTEGER PRIMARY KEY, SCHULDHULPORGANISATIE_ID INTEGER, CONTACTPERSOON_ID INTEGER ); CREATE TABLE KP_SCHLDHLPRGNST_OPLSSNGSSRT ( KP_SCHLDHLPRGNST_OPLSSNGSSRT_ID INTEGER PRIMARY KEY, SCHULDHULPORGANISATIE_ID INTEGER, OPLOSSINGSSOORT_ID INTEGER ); CREATE TABLE SCHULDHULPTRAJECT ( SCHULDHULPTRAJECT_ID INTEGER PRIMARY KEY, BEVAT_OPLOSSING_ID INTEGER, EINDDATUM DATE, OMSCHRIJVING TEXT, STARTDATUM DATE, TOEKENNINGSDATUM DATE, TOTAALSCHULDBEDRAGBIJAANVANGSCHULD DECIMAL(10,2) ); CREATE TABLE KP_SCHLDHLPRGNST_SCHLDHLPTRJCT ( KP_SCHLDHLPRGNST_SCHLDHLPTRJCT_ID INTEGER PRIMARY KEY, SCHULDHULPORGANISATIE_ID INTEGER, SCHULDHULPTRAJECT_ID INTEGER ); CREATE TABLE BEGELEIDING ( BEGELEIDING_ID INTEGER PRIMARY KEY, BEVAT_SCHULDHULPTRAJECT_ID INTEGER, EINDDATUM DATE, SOORT_BEGELEIDINGSSOORT_ID INTEGER, SOORT_ENUM_ID INTEGER, STARTDATUM DATE ); ALTER TABLE SCHULDHULPORGANISATIE ADD CONSTRAINT FK_SCHULDHULPORGANISATIE_GEN_NIETNATUURLIJKPERSOON FOREIGN KEY (NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID); -- Generalization to NIETNATUURLIJKPERSOON ALTER TABLE KP_SCHLDHLPRGNST_SCHLDHLPTRJCT ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_SCHLDHLPTRJCT_1 FOREIGN KEY (SCHULDHULPORGANISATIE_ID) REFERENCES SCHULDHULPORGANISATIE (NIETNATUURLIJKPERSOON_ID); -- SCHULDHULPORGANISATIE (many-to-many junction, Connector_ID: 967) ALTER TABLE KP_SCHLDHLPRGNST_SCHLDHLPTRJCT ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_SCHLDHLPTRJCT_2 FOREIGN KEY (SCHULDHULPTRAJECT_ID) REFERENCES SCHULDHULPTRAJECT (SCHULDHULPTRAJECT_ID); -- SCHULDHULPTRAJECT (many-to-many junction, Connector_ID: 967) ALTER TABLE KP_SCHLDHLPRGNST_NTNTRLJKPRSN ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_NTNTRLJKPRSN_1 FOREIGN KEY (SCHULDHULPORGANISATIE_ID) REFERENCES SCHULDHULPORGANISATIE (NIETNATUURLIJKPERSOON_ID); -- SCHULDHULPORGANISATIE (many-to-many junction, Connector_ID: 968) ALTER TABLE KP_SCHLDHLPRGNST_NTNTRLJKPRSN ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_NTNTRLJKPRSN_2 FOREIGN KEY (NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID); -- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 968) ALTER TABLE KP_SCHLDHLPRGNST_OPLSSNGSSRT ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_OPLSSNGSSRT_1 FOREIGN KEY (SCHULDHULPORGANISATIE_ID) REFERENCES SCHULDHULPORGANISATIE (NIETNATUURLIJKPERSOON_ID); -- SCHULDHULPORGANISATIE (many-to-many junction, Connector_ID: 974) ALTER TABLE KP_SCHLDHLPRGNST_OPLSSNGSSRT ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_OPLSSNGSSRT_2 FOREIGN KEY (OPLOSSINGSSOORT_ID) REFERENCES OPLOSSINGSSOORT (OPLOSSINGSSOORT_ID); -- OPLOSSINGSSOORT (many-to-many junction, Connector_ID: 974) ALTER TABLE KP_SCHLDHLPRGNST_CNTCTPRSN ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_CNTCTPRSN_1 FOREIGN KEY (SCHULDHULPORGANISATIE_ID) REFERENCES SCHULDHULPORGANISATIE (NIETNATUURLIJKPERSOON_ID); -- SCHULDHULPORGANISATIE (many-to-many junction, Connector_ID: 992) ALTER TABLE KP_SCHLDHLPRGNST_CNTCTPRSN ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_CNTCTPRSN_2 FOREIGN KEY (CONTACTPERSOON_ID) REFERENCES CONTACTPERSOON (CONTACTPERSOON_ID); -- CONTACTPERSOON (many-to-many junction, Connector_ID: 992) ALTER TABLE KP_SCHLDHLPRGNST_BGLDNGSSRT ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_BGLDNGSSRT_1 FOREIGN KEY (SCHULDHULPORGANISATIE_ID) REFERENCES SCHULDHULPORGANISATIE (NIETNATUURLIJKPERSOON_ID); -- SCHULDHULPORGANISATIE (many-to-many junction, Connector_ID: 993) ALTER TABLE KP_SCHLDHLPRGNST_BGLDNGSSRT ADD CONSTRAINT FK_KP_SCHLDHLPRGNST_BGLDNGSSRT_2 FOREIGN KEY (BEGELEIDINGSSOORT_ID) REFERENCES BEGELEIDINGSSOORT (BEGELEIDINGSSOORT_ID); -- BEGELEIDINGSSOORT (many-to-many junction, Connector_ID: 993) ALTER TABLE SCHULDHULPTRAJECT ADD CONSTRAINT FK_SCHULDHULPTRAJECT_BEVAT FOREIGN KEY (BEVAT_OPLOSSING_ID) REFERENCES OPLOSSING (OPLOSSING_ID); -- BEVAT (1 to 0..1, Connector_ID: 976) ALTER TABLE OPLOSSING ADD CONSTRAINT FK_OPLOSSING_SOORT FOREIGN KEY (SOORT_OPLOSSINGSSOORT_ID) REFERENCES OPLOSSINGSSOORT (OPLOSSINGSSOORT_ID); -- SOORT (0..* to 1, Connector_ID: 977) ALTER TABLE BEGELEIDING ADD CONSTRAINT FK_BEGELEIDING_BEVAT FOREIGN KEY (BEVAT_SCHULDHULPTRAJECT_ID) REFERENCES SCHULDHULPTRAJECT (SCHULDHULPTRAJECT_ID); -- BEVAT (1 to 0..*, Connector_ID: 996) ALTER TABLE BEGELEIDING ADD CONSTRAINT FK_BEGELEIDING_SOORT FOREIGN KEY (SOORT_BEGELEIDINGSSOORT_ID) REFERENCES BEGELEIDINGSSOORT (BEGELEIDINGSSOORT_ID); -- SOORT (0..* to 1, Connector_ID: 999) ALTER TABLE BEGELEIDING ADD CONSTRAINT FK_BEGELEIDING_SOORT_ENUM_ID FOREIGN KEY (SOORT_ENUM_ID_ENUMBEGELEIDINGSSOORT_ENUM_ID) REFERENCES ENUMBEGELEIDINGSSOORT_ENUM (ENUMBEGELEIDINGSSOORT_ENUM_ID); -- SOORT_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE BEGELEIDINGSSOORT ADD CONSTRAINT FK_BEGELEIDINGSSOORT_SOORT_ENUM_ID FOREIGN KEY (SOORT_ENUM_ID_ENUMBEGELEIDINGSSOORT_ENUM_ID) REFERENCES ENUMBEGELEIDINGSSOORT_ENUM (ENUMBEGELEIDINGSSOORT_ENUM_ID); -- SOORT_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE OPLOSSING ADD CONSTRAINT FK_OPLOSSING_SOORT_ENUM_ID FOREIGN KEY (SOORT_ENUM_ID_ENUMOPLOSSINGSSOORT_ENUM_ID) REFERENCES ENUMOPLOSSINGSSOORT_ENUM (ENUMOPLOSSINGSSOORT_ENUM_ID); -- SOORT_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE OPLOSSINGSSOORT ADD CONSTRAINT FK_OPLOSSINGSSOORT_SOORT_ENUM_ID FOREIGN KEY (SOORT_ENUM_ID_ENUMSCHULDENSOORT_ENUM_ID) REFERENCES ENUMSCHULDENSOORT_ENUM (ENUMSCHULDENSOORT_ENUM_ID); -- SOORT_ENUM_ID (1 to 1, Connector_ID: enum_ref)