CREATE TABLE [CONTACTPERSOON] ( [CONTACTPERSOON_ID] INT PRIMARY KEY, [EMAIL] VARCHAR(255), [FUNCTIETITEL] VARCHAR(200), [NAAM] VARCHAR(200), [TELEFOONNUMMER] VARCHAR(200) ); CREATE TABLE [ENUMSCHULDENSOORT_ENUM] ( [ENUMSCHULDENSOORT_ENUM_ID] INT 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] INT 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] INT 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] INT PRIMARY KEY, [DATUMAANVANG] DATE, [DATUMEINDE] DATE, [DATUMUITSCHRIJVING] DATE, [DATUMVOORTZETTING] DATE, [FAXNUMMER] VARCHAR(20), [INGESCHREVEN] BIT, [INOPRICHTING] BIT, [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] INT PRIMARY KEY, [SOORT_ENUM_ID] INT ); CREATE TABLE [BEGELEIDINGSSOORT] ( [BEGELEIDINGSSOORT_ID] INT PRIMARY KEY, [SOORT_ENUM_ID] INT ); CREATE TABLE [SCHULDHULPORGANISATIE] ( [NIETNATUURLIJKPERSOON_ID] INT PRIMARY KEY, [NAAM] VARCHAR(200) ); CREATE TABLE [OPLOSSING] ( [OPLOSSING_ID] INT PRIMARY KEY, [EINDDATUM] DATE, [SOORT_ENUM_ID] INT, [SOORT_OPLOSSINGSSOORT_ID] INT, [STARTDATUM] DATE, [VTLB] VARCHAR(255) ); CREATE TABLE [KP_SCHLDHLPRGNST_BGLDNGSSRT] ( [KP_SCHLDHLPRGNST_BGLDNGSSRT_ID] INT PRIMARY KEY, [SCHULDHULPORGANISATIE_ID] INT, [BEGELEIDINGSSOORT_ID] INT ); CREATE TABLE [KP_SCHLDHLPRGNST_NTNTRLJKPRSN] ( [KP_SCHLDHLPRGNST_NTNTRLJKPRSN_ID] INT PRIMARY KEY, [SCHULDHULPORGANISATIE_ID] INT, [NIETNATUURLIJKPERSOON_ID] INT ); CREATE TABLE [KP_SCHLDHLPRGNST_CNTCTPRSN] ( [KP_SCHLDHLPRGNST_CNTCTPRSN_ID] INT PRIMARY KEY, [SCHULDHULPORGANISATIE_ID] INT, [CONTACTPERSOON_ID] INT ); CREATE TABLE [KP_SCHLDHLPRGNST_OPLSSNGSSRT] ( [KP_SCHLDHLPRGNST_OPLSSNGSSRT_ID] INT PRIMARY KEY, [SCHULDHULPORGANISATIE_ID] INT, [OPLOSSINGSSOORT_ID] INT ); CREATE TABLE [SCHULDHULPTRAJECT] ( [SCHULDHULPTRAJECT_ID] INT PRIMARY KEY, [BEVAT_OPLOSSING_ID] INT, [EINDDATUM] DATE, [OMSCHRIJVING] NVARCHAR(MAX), [STARTDATUM] DATE, [TOEKENNINGSDATUM] DATE, [TOTAALSCHULDBEDRAGBIJAANVANGSCHULD] DECIMAL(10,2) ); CREATE TABLE [KP_SCHLDHLPRGNST_SCHLDHLPTRJCT] ( [KP_SCHLDHLPRGNST_SCHLDHLPTRJCT_ID] INT PRIMARY KEY, [SCHULDHULPORGANISATIE_ID] INT, [SCHULDHULPTRAJECT_ID] INT ); CREATE TABLE [BEGELEIDING] ( [BEGELEIDING_ID] INT PRIMARY KEY, [BEVAT_SCHULDHULPTRAJECT_ID] INT, [EINDDATUM] DATE, [SOORT_BEGELEIDINGSSOORT_ID] INT, [SOORT_ENUM_ID] INT, [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)