CREATE TABLE `CONTACTPERSOON` ( `CONTACTPERSOON_ID` INT PRIMARY KEY, `EMAIL` VARCHAR(255), `FUNCTIETITEL` VARCHAR(200), `NAAM` VARCHAR(200), `TELEFOONNUMMER` VARCHAR(200) ) ENGINE=InnoDB; CREATE TABLE `ENUMSCHULDENSOORT_ENUM` ( `ENUMSCHULDENSOORT_ENUM_ID` INT PRIMARY KEY, VALUE VARCHAR(255) ) ENGINE=InnoDB; INSERT INTO `ENUMSCHULDENSOORT_ENUM` (`ENUMSCHULDENSOORT_ENUM_ID`, VALUE) VALUES (1, 'NUTS'), (2, 'OVERIG'), (3, 'PUBLIEK'), (4, 'ZORG'); CREATE TABLE `ENUMBEGELEIDINGSSOORT_ENUM` ( `ENUMBEGELEIDINGSSOORT_ENUM_ID` INT PRIMARY KEY, VALUE VARCHAR(255) ) ENGINE=InnoDB; 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` INT PRIMARY KEY, VALUE VARCHAR(255) ) ENGINE=InnoDB; 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` 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 `OPLOSSINGSSOORT` ( `OPLOSSINGSSOORT_ID` INT PRIMARY KEY, `SOORT_ENUM_ID` INT ) ENGINE=InnoDB; CREATE TABLE `BEGELEIDINGSSOORT` ( `BEGELEIDINGSSOORT_ID` INT PRIMARY KEY, `SOORT_ENUM_ID` INT ) ENGINE=InnoDB; CREATE TABLE `SCHULDHULPORGANISATIE` ( `NIETNATUURLIJKPERSOON_ID` INT PRIMARY KEY, `NAAM` VARCHAR(200) ) ENGINE=InnoDB; CREATE TABLE `OPLOSSING` ( `OPLOSSING_ID` INT PRIMARY KEY, `EINDDATUM` DATE, `SOORT_ENUM_ID` INT, `SOORT_OPLOSSINGSSOORT_ID` INT, `STARTDATUM` DATE, `VTLB` VARCHAR(255) ) ENGINE=InnoDB; CREATE TABLE `KP_SCHLDHLPRGNST_BGLDNGSSRT` ( `KP_SCHLDHLPRGNST_BGLDNGSSRT_ID` INT PRIMARY KEY, `SCHULDHULPORGANISATIE_ID` INT, `BEGELEIDINGSSOORT_ID` INT ) ENGINE=InnoDB; CREATE TABLE `KP_SCHLDHLPRGNST_NTNTRLJKPRSN` ( `KP_SCHLDHLPRGNST_NTNTRLJKPRSN_ID` INT PRIMARY KEY, `SCHULDHULPORGANISATIE_ID` INT, `NIETNATUURLIJKPERSOON_ID` INT ) ENGINE=InnoDB; CREATE TABLE `KP_SCHLDHLPRGNST_CNTCTPRSN` ( `KP_SCHLDHLPRGNST_CNTCTPRSN_ID` INT PRIMARY KEY, `SCHULDHULPORGANISATIE_ID` INT, `CONTACTPERSOON_ID` INT ) ENGINE=InnoDB; CREATE TABLE `KP_SCHLDHLPRGNST_OPLSSNGSSRT` ( `KP_SCHLDHLPRGNST_OPLSSNGSSRT_ID` INT PRIMARY KEY, `SCHULDHULPORGANISATIE_ID` INT, `OPLOSSINGSSOORT_ID` INT ) ENGINE=InnoDB; CREATE TABLE `SCHULDHULPTRAJECT` ( `SCHULDHULPTRAJECT_ID` INT PRIMARY KEY, `BEVAT_OPLOSSING_ID` INT, `EINDDATUM` DATE, `OMSCHRIJVING` TEXT, `STARTDATUM` DATE, `TOEKENNINGSDATUM` DATE, `TOTAALSCHULDBEDRAGBIJAANVANGSCHULD` DECIMAL(10,2) ) ENGINE=InnoDB; CREATE TABLE `KP_SCHLDHLPRGNST_SCHLDHLPTRJCT` ( `KP_SCHLDHLPRGNST_SCHLDHLPTRJCT_ID` INT PRIMARY KEY, `SCHULDHULPORGANISATIE_ID` INT, `SCHULDHULPTRAJECT_ID` INT ) ENGINE=InnoDB; CREATE TABLE `BEGELEIDING` ( `BEGELEIDING_ID` INT PRIMARY KEY, `BEVAT_SCHULDHULPTRAJECT_ID` INT, `EINDDATUM` DATE, `SOORT_BEGELEIDINGSSOORT_ID` INT, `SOORT_ENUM_ID` INT, `STARTDATUM` DATE ) ENGINE=InnoDB; 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)