CREATE TABLE VASTGOEDOBJECT ( VASTGOEDOBJECT_ID INTEGER PRIMARY KEY, AANTALETAGES INTEGER, AANTALPARKEERPLAATSEN INTEGER, AANTALRIOLERINGEN INTEGER, ADRESAANDUIDING VARCHAR(255), AFGEKOCHTEERFPACHT_ENUM_ID INTEGER, AFGESPROKENCONDITIESCORE VARCHAR(255), AFKOOPWAARDE VARCHAR(255), ASBESTRAPPORTAGEAANWEZIG_ENUM_ID INTEGER, 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_ENUM_ID INTEGER, 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 LOCATIE ( VASTGOEDOBJECT_ID INTEGER PRIMARY KEY, ADRES VARCHAR(255), SCHOOL_HEEFT_SCHOOL_ID INTEGER ); CREATE TABLE LEERLING ( LEERLING_ID INTEGER PRIMARY KEY, HEEFT_STARTKWALIFICATIE_ID INTEGER, KWETSBAREJONGERE_ENUM_ID INTEGER ); CREATE TABLE STARTKWALIFICATIE ( STARTKWALIFICATIE_ID INTEGER PRIMARY KEY, DATUMBEHAALD DATE ); CREATE TABLE KP_SCHL_ONDRWJSLPBN ( KP_SCHL_ONDRWJSLPBN_ID INTEGER PRIMARY KEY, SCHOOL_ID INTEGER, ONDERWIJSLOOPBAAN_ID INTEGER ); CREATE TABLE KP_SCHL_ONDRWJSSRT ( KP_SCHL_ONDRWJSSRT_ID INTEGER PRIMARY KEY, SCHOOL_ID INTEGER, ONDERWIJSSOORT_ID INTEGER ); CREATE TABLE KP_LCT_VSTGDBJCT ( KP_LCT_VSTGDBJCT_ID INTEGER PRIMARY KEY, LOCATIE_ID INTEGER, VASTGOEDOBJECT_ID INTEGER ); CREATE TABLE SCHOOL ( SCHOOL_ID INTEGER PRIMARY KEY, NAAM VARCHAR(200) ); CREATE TABLE LEERJAAR ( LEERJAAR_ID INTEGER PRIMARY KEY, JAAREINDE DATE, JAARSTART DATE ); CREATE TABLE INSCHRIJVING ( INSCHRIJVING_ID INTEGER PRIMARY KEY, DATUM DATE, HEEFT_LEERLING_ID INTEGER, HEEFT_SCHOOL_ID INTEGER ); CREATE TABLE ONDERWIJSTYPE_ENUM ( ONDERWIJSTYPE_ENUM_ID INTEGER PRIMARY KEY, VALUE VARCHAR(255) ); INSERT INTO ONDERWIJSTYPE_ENUM (ONDERWIJSTYPE_ENUM_ID, VALUE) VALUES (1, 'HAVO'), (2, 'VMBO_B'), (3, 'VMBO_K'), (4, 'VMBO_T'), (5, 'VWO'); CREATE TABLE UITSCHRIJVING ( UITSCHRIJVING_ID INTEGER PRIMARY KEY, DATUM DATE, DIPLOMABEHAALD_ENUM_ID INTEGER, HEEFT_LEERLING_ID INTEGER, HEEFT_SCHOOL_ID INTEGER ); CREATE TABLE ONDERWIJSLOOPBAAN ( ONDERWIJSLOOPBAAN_ID INTEGER PRIMARY KEY, HEEFT_LEERLING_ID INTEGER ); CREATE TABLE ONDERWIJSSOORT ( ONDERWIJSSOORT_ID INTEGER PRIMARY KEY, OMSCHRIJVING VARCHAR(80), ONDERWIJSTYPE_ENUM_ID INTEGER ); CREATE TABLE LOOPBAANSTAP ( LOOPBAANSTAP_ID INTEGER PRIMARY KEY, KLAS INTEGER, ONDERWIJSLOOPBAAN_ID INTEGER, ONDERWIJSTYPE_ENUM_ID INTEGER, SCHOOLJAAR VARCHAR(255) ); 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 LOCATIE ADD CONSTRAINT FK_LOCATIE_GEN_VASTGOEDOBJECT FOREIGN KEY (VASTGOEDOBJECT_ID) REFERENCES VASTGOEDOBJECT (VASTGOEDOBJECT_ID); -- Generalization to VASTGOEDOBJECT ALTER TABLE KP_SCHL_ONDRWJSSRT ADD CONSTRAINT FK_KP_SCHL_ONDRWJSSRT_1 FOREIGN KEY (SCHOOL_ID) REFERENCES SCHOOL (SCHOOL_ID); -- SCHOOL (many-to-many junction, Connector_ID: 1210) ALTER TABLE KP_SCHL_ONDRWJSSRT ADD CONSTRAINT FK_KP_SCHL_ONDRWJSSRT_2 FOREIGN KEY (ONDERWIJSSOORT_ID) REFERENCES ONDERWIJSSOORT (ONDERWIJSSOORT_ID); -- ONDERWIJSSOORT (many-to-many junction, Connector_ID: 1210) ALTER TABLE KP_SCHL_ONDRWJSLPBN ADD CONSTRAINT FK_KP_SCHL_ONDRWJSLPBN_1 FOREIGN KEY (SCHOOL_ID) REFERENCES SCHOOL (SCHOOL_ID); -- SCHOOL (many-to-many junction, Connector_ID: 1211) ALTER TABLE KP_SCHL_ONDRWJSLPBN ADD CONSTRAINT FK_KP_SCHL_ONDRWJSLPBN_2 FOREIGN KEY (ONDERWIJSLOOPBAAN_ID) REFERENCES ONDERWIJSLOOPBAAN (ONDERWIJSLOOPBAAN_ID); -- ONDERWIJSLOOPBAAN (many-to-many junction, Connector_ID: 1211) ALTER TABLE KP_LCT_VSTGDBJCT ADD CONSTRAINT FK_KP_LCT_VSTGDBJCT_1 FOREIGN KEY (LOCATIE_ID) REFERENCES LOCATIE (VASTGOEDOBJECT_ID); -- LOCATIE (many-to-many junction, Connector_ID: 1214) ALTER TABLE KP_LCT_VSTGDBJCT ADD CONSTRAINT FK_KP_LCT_VSTGDBJCT_2 FOREIGN KEY (VASTGOEDOBJECT_ID) REFERENCES VASTGOEDOBJECT (VASTGOEDOBJECT_ID); -- VASTGOEDOBJECT (many-to-many junction, Connector_ID: 1214) ALTER TABLE UITSCHRIJVING ADD CONSTRAINT FK_UITSCHRIJVING_HEEFT FOREIGN KEY (HEEFT_SCHOOL_ID) REFERENCES SCHOOL (SCHOOL_ID); -- HEEFT (1 to 0..*, Connector_ID: 1206) ALTER TABLE LOOPBAANSTAP ADD CONSTRAINT FK_LOOPBAANSTAP_ONDERWIJSLOOPBAAN FOREIGN KEY (ONDERWIJSLOOPBAAN_ID) REFERENCES ONDERWIJSLOOPBAAN (ONDERWIJSLOOPBAAN_ID); -- unnamed (1 to 0..*, Connector_ID: 1212) ALTER TABLE LOCATIE ADD CONSTRAINT FK_LOCATIE_SCHOOL_HEEFT FOREIGN KEY (SCHOOL_HEEFT_SCHOOL_ID) REFERENCES SCHOOL (SCHOOL_ID); -- SCHOOL_HEEFT (0..1 to 1..*, Connector_ID: 1213) ALTER TABLE UITSCHRIJVING ADD CONSTRAINT FK_UITSCHRIJVING_HEEFT_2 FOREIGN KEY (HEEFT_LEERLING_ID) REFERENCES LEERLING (LEERLING_ID); -- HEEFT (1 to 0..*, Connector_ID: 1215) ALTER TABLE ONDERWIJSLOOPBAAN ADD CONSTRAINT FK_ONDERWIJSLOOPBAAN_HEEFT FOREIGN KEY (HEEFT_LEERLING_ID) REFERENCES LEERLING (LEERLING_ID); -- HEEFT (1 to 0..*, Connector_ID: 1216) ALTER TABLE LEERLING ADD CONSTRAINT FK_LEERLING_HEEFT FOREIGN KEY (HEEFT_STARTKWALIFICATIE_ID) REFERENCES STARTKWALIFICATIE (STARTKWALIFICATIE_ID); -- HEEFT (1 to 0..1, Connector_ID: 1217) ALTER TABLE INSCHRIJVING ADD CONSTRAINT FK_INSCHRIJVING_HEEFT FOREIGN KEY (HEEFT_LEERLING_ID) REFERENCES LEERLING (LEERLING_ID); -- HEEFT (1 to 0..*, Connector_ID: 1219) ALTER TABLE INSCHRIJVING ADD CONSTRAINT FK_INSCHRIJVING_HEEFT_2 FOREIGN KEY (HEEFT_SCHOOL_ID) REFERENCES SCHOOL (SCHOOL_ID); -- HEEFT (0..* to 1, Connector_ID: 1220) ALTER TABLE LEERLING ADD CONSTRAINT FK_LEERLING_KWETSBAREJONGERE_ENUM_ID FOREIGN KEY (KWETSBAREJONGERE_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- KWETSBAREJONGERE_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE LOOPBAANSTAP ADD CONSTRAINT FK_LOOPBAANSTAP_ONDERWIJSTYPE_ENUM_ID FOREIGN KEY (ONDERWIJSTYPE_ENUM_ID_ONDERWIJSTYPE_ENUM_ID) REFERENCES ONDERWIJSTYPE_ENUM (ONDERWIJSTYPE_ENUM_ID); -- ONDERWIJSTYPE_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE ONDERWIJSSOORT ADD CONSTRAINT FK_ONDERWIJSSOORT_ONDERWIJSTYPE_ENUM_ID FOREIGN KEY (ONDERWIJSTYPE_ENUM_ID_ONDERWIJSTYPE_ENUM_ID) REFERENCES ONDERWIJSTYPE_ENUM (ONDERWIJSTYPE_ENUM_ID); -- ONDERWIJSTYPE_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE UITSCHRIJVING ADD CONSTRAINT FK_UITSCHRIJVING_DIPLOMABEHAALD_ENUM_ID FOREIGN KEY (DIPLOMABEHAALD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- DIPLOMABEHAALD_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE VASTGOEDOBJECT ADD CONSTRAINT FK_VASTGOEDOBJECT_GEARCHIVEERD_ENUM_ID FOREIGN KEY (GEARCHIVEERD_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- GEARCHIVEERD_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE VASTGOEDOBJECT ADD CONSTRAINT FK_VASTGOEDOBJECT_AFGEKOCHTEERFPACHT_ENUM_ID FOREIGN KEY (AFGEKOCHTEERFPACHT_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- AFGEKOCHTEERFPACHT_ENUM_ID (1 to 1, Connector_ID: enum_ref) ALTER TABLE VASTGOEDOBJECT ADD CONSTRAINT FK_VASTGOEDOBJECT_ASBESTRAPPORTAGEAANWEZIG_ENUM_ID FOREIGN KEY (ASBESTRAPPORTAGEAANWEZIG_ENUM_ID_BOOLEAN_ENUM_ID) REFERENCES BOOLEAN_ENUM (BOOLEAN_ENUM_ID); -- ASBESTRAPPORTAGEAANWEZIG_ENUM_ID (1 to 1, Connector_ID: enum_ref)