CREATE TABLE VASTGOEDOBJECT ( VASTGOEDOBJECT_ID INTEGER PRIMARY KEY, AANTALETAGES INTEGER, AANTALPARKEERPLAATSEN INTEGER, AANTALRIOLERINGEN INTEGER, ADRESAANDUIDING VARCHAR(255), AFGEKOCHTEERFPACHT BOOLEAN, AFGESPROKENCONDITIESCORE VARCHAR(255), AFKOOPWAARDE VARCHAR(255), ASBESTRAPPORTAGEAANWEZIG BOOLEAN, BEDRAGAANKOOP DECIMAL(10,2), BESTEMMINGSPLAN VARCHAR(200), BOEKWAARDE VARCHAR(255), BOUWJAAR INTEGER, BOUWWERK VARCHAR(80), BOVENLIGGENDNIVEAU VARCHAR(80), BOVENLIGGENDNIVEAUCODE VARCHAR(20), BRUTOVLOEROPPERVLAKTE INTEGER, CO2UITSTOOT INTEGER, CONDITIESCORE VARCHAR(255), DATUMAFSTOTEN DATE, DATUMBEREKENINGOPPERVLAK DATE, DATUMEIGENDOM DATE, DATUMVERKOOP DATE, DEELPORTEFEUILLE VARCHAR(80), ENERGIEKOSTEN DECIMAL(10,2), ENERGIELABEL VARCHAR(255), ENERGIEVERBRUIK INTEGER, FISCALEWAARDE VARCHAR(255), FOTO VARCHAR(255), GEARCHIVEERD BOOLEAN, HERBOUWWAARDE VARCHAR(255), HOOFDSTUK VARCHAR(80), IDENTIFICATIE VARCHAR(80), JAARLAATSTERENOVATIE VARCHAR(255), KOSTENPLAATS DECIMAL(10,2), LOCATIE VARCHAR(255), MARKTWAARDE VARCHAR(255), MONUMENT VARCHAR(255), NAAM VARCHAR(80), OBJECTSTATUS VARCHAR(255), OBJECTSTATUSCODE VARCHAR(255), OBJECTTYPE VARCHAR(80), OBJECTTYPECODE VARCHAR(255), OMSCHRIJVING VARCHAR(80), ONDERHOUDSCATEGORIE VARCHAR(80), OPPERVLAKTEKANTOOR INTEGER, PORTEFEUILLE VARCHAR(80), PORTEFEUILLECODE VARCHAR(255), PROVINCIE VARCHAR(255), TOELICHTING TEXT, VERHUURBAARVLOEROPPERVLAK INTEGER, VERKOOPBAARHEID VARCHAR(80), VERKOOPBEDRAG DECIMAL(10,2), VERZEKERDEWAARDE VARCHAR(255), WAARDEGROND VARCHAR(255), WAARDEOPSTAL VARCHAR(255), WIJK VARCHAR(255), WOZWAARDE VARCHAR(255) ); CREATE TABLE OBJECTRELATIEROL_ENUM ( OBJECTRELATIEROL_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO OBJECTRELATIEROL_ENUM (OBJECTRELATIEROL_ENUM_ID, VALUE) VALUES (1, 'ACCOUNTMANAGER'), (2, 'ACCOUNTMANAGER_VERKOOP_JURIST_'), (3, 'BEHEERDER'), (4, 'SERVICE_PROVIDER'), (5, 'TAXATEUR'), (6, 'TECHNISCH_BEHEERDER'); CREATE TABLE AANBESTEDING ( AANBESTEDING_ID INTEGER PRIMARY KEY, DATUMPUBLICATIE DATE, DATUMSTART DATE, DIGITAAL BOOLEAN, NAAM VARCHAR(200), PROCEDURE VARCHAR(255), REFERENTIENUMMER VARCHAR(80), SCOREMAXIMAAL INTEGER, STATUS VARCHAR(80), TENDERNEDKENMERK VARCHAR(80), TYPE VARCHAR(255), VOLGENDESLUITING VARCHAR(255) ); 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 AANBESTEDING_VASTGOED ( AANBESTEDING_ID INTEGER PRIMARY KEY ); CREATE TABLE WERKBON ( WERKBON_ID INTEGER PRIMARY KEY, BETREFT_VASTGOEDOBJECT_ID INTEGER, UITVOERING_VAN_AANBESTEDING_ID INTEGER, VOERT_WERK_UIT_CONFORM_RECHTSPERSOON_ID INTEGER ); CREATE TABLE OBJECTRELATIE ( OBJECTRELATIE_ID INTEGER PRIMARY KEY, HEEFT_RECHTSPERSOON_ID INTEGER, HEEFT_VASTGOEDOBJECT_ID INTEGER, ROL_ENUM_ID INTEGER ); CREATE TABLE LEVERANCIER ( RECHTSPERSOON_ID INTEGER PRIMARY KEY, NAAM VARCHAR(200), NUMMER VARCHAR(255) ); CREATE TABLE KP_ANBSTDNG_VSTGD_ANBSTDNG ( KP_ANBSTDNG_VSTGD_ANBSTDNG_ID INTEGER PRIMARY KEY, AANBESTEDING_VASTGOED_ID INTEGER, AANBESTEDING_ID INTEGER ); CREATE TABLE KP_LVRNCR_RCHTSPRSN ( KP_LVRNCR_RCHTSPRSN_ID INTEGER PRIMARY KEY, LEVERANCIER_ID INTEGER, RECHTSPERSOON_ID INTEGER ); CREATE TABLE KP_LVRNCR_ANBSTDNG_VSTGD ( KP_LVRNCR_ANBSTDNG_VSTGD_ID INTEGER PRIMARY KEY, LEVERANCIER_ID INTEGER, AANBESTEDING_VASTGOED_ID INTEGER ); ALTER TABLE AANBESTEDING_VASTGOED ADD CONSTRAINT FK_AANBESTEDING_VASTGOED_GEN_AANBESTEDING FOREIGN KEY (AANBESTEDING_ID) REFERENCES AANBESTEDING (AANBESTEDING_ID); -- Generalization to AANBESTEDING ALTER TABLE LEVERANCIER ADD CONSTRAINT FK_LEVERANCIER_GEN_RECHTSPERSOON FOREIGN KEY (RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- Generalization to RECHTSPERSOON ALTER TABLE KP_LVRNCR_RCHTSPRSN ADD CONSTRAINT FK_KP_LVRNCR_RCHTSPRSN_1 FOREIGN KEY (LEVERANCIER_ID) REFERENCES LEVERANCIER (RECHTSPERSOON_ID); -- LEVERANCIER (many-to-many junction, Connector_ID: 390) ALTER TABLE KP_LVRNCR_RCHTSPRSN ADD CONSTRAINT FK_KP_LVRNCR_RCHTSPRSN_2 FOREIGN KEY (RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- RECHTSPERSOON (many-to-many junction, Connector_ID: 390) ALTER TABLE KP_LVRNCR_ANBSTDNG_VSTGD ADD CONSTRAINT FK_KP_LVRNCR_ANBSTDNG_VSTGD_1 FOREIGN KEY (LEVERANCIER_ID) REFERENCES LEVERANCIER (RECHTSPERSOON_ID); -- LEVERANCIER (many-to-many junction, Connector_ID: 586) ALTER TABLE KP_LVRNCR_ANBSTDNG_VSTGD ADD CONSTRAINT FK_KP_LVRNCR_ANBSTDNG_VSTGD_2 FOREIGN KEY (AANBESTEDING_VASTGOED_ID) REFERENCES AANBESTEDING_VASTGOED (AANBESTEDING_ID); -- AANBESTEDING_VASTGOED (many-to-many junction, Connector_ID: 586) ALTER TABLE KP_ANBSTDNG_VSTGD_ANBSTDNG ADD CONSTRAINT FK_KP_ANBSTDNG_VSTGD_ANBSTDNG_1 FOREIGN KEY (AANBESTEDING_VASTGOED_ID) REFERENCES AANBESTEDING_VASTGOED (AANBESTEDING_ID); -- AANBESTEDING_VASTGOED (many-to-many junction, Connector_ID: 588) ALTER TABLE KP_ANBSTDNG_VSTGD_ANBSTDNG ADD CONSTRAINT FK_KP_ANBSTDNG_VSTGD_ANBSTDNG_2 FOREIGN KEY (AANBESTEDING_ID) REFERENCES AANBESTEDING (AANBESTEDING_ID); -- AANBESTEDING (many-to-many junction, Connector_ID: 588) ALTER TABLE WERKBON ADD CONSTRAINT FK_WERKBON_VOERT_WERK_UIT_CONFORM FOREIGN KEY (VOERT_WERK_UIT_CONFORM_RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- VOERT_WERK_UIT_CONFORM (1 to 0..*, Connector_ID: 538) ALTER TABLE WERKBON ADD CONSTRAINT FK_WERKBON_BETREFT FOREIGN KEY (BETREFT_VASTGOEDOBJECT_ID) REFERENCES VASTGOEDOBJECT (VASTGOEDOBJECT_ID); -- BETREFT (0..* to 1, Connector_ID: 542) ALTER TABLE OBJECTRELATIE ADD CONSTRAINT FK_OBJECTRELATIE_HEEFT FOREIGN KEY (HEEFT_VASTGOEDOBJECT_ID) REFERENCES VASTGOEDOBJECT (VASTGOEDOBJECT_ID); -- HEEFT (1 to 0..*, Connector_ID: 556) ALTER TABLE WERKBON ADD CONSTRAINT FK_WERKBON_UITVOERING_VAN FOREIGN KEY (UITVOERING_VAN_AANBESTEDING_ID) REFERENCES AANBESTEDING (AANBESTEDING_ID); -- UITVOERING_VAN (0..1 to 0..*, Connector_ID: 587) ALTER TABLE OBJECTRELATIE ADD CONSTRAINT FK_OBJECTRELATIE_HEEFT_2 FOREIGN KEY (HEEFT_RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID); -- HEEFT (1 to 0..*, Connector_ID: 1902) ALTER TABLE OBJECTRELATIE ADD CONSTRAINT FK_OBJECTRELATIE_ROL_ENUM_ID FOREIGN KEY (ROL_ENUM_ID_OBJECTRELATIEROL_ENUM_ID) REFERENCES OBJECTRELATIEROL_ENUM (OBJECTRELATIEROL_ENUM_ID); -- ROL_ENUM_ID (1 to 1, Connector_ID: enum_ref)