· 8 years ago · Dec 07, 2017, 02:24 PM
1-- Create schemas
2
3-- Create tables
4CREATE TABLE IF NOT EXISTS Persoonsgegevens
5(
6 Kaartnummer INTEGER UNIQUE,
7 Geslacht VARCHAR(5) NOT NULL,
8 Voorletter VARCHAR(255) NOT NULL,
9 Tussenvoegsel VARCHAR(5) NOT NULL,
10 Achternaam VARCHAR(50) NOT NULL,
11 Geboortedatum DATE NOT NULL,
12 "Voorwaarden Akkoord" BOOLEAN NOT NULL,
13 ID INTEGER NOT NULL,
14 PRIMARY KEY(ID)
15);
16
17CREATE TABLE IF NOT EXISTS Contactgegevens
18(
19 BSN INTEGER NOT NULL,
20 Naam VARCHAR(25) NOT NULL,
21 Adres VARCHAR(50) NOT NULL,
22 Plaats VARCHAR(40) NOT NULL,
23 Straat VARCHAR(40) NOT NULL,
24 Telefoonnummer INTEGER NOT NULL,
25 Email VARCHAR(50) NOT NULL,
26 Kaartnummer INTEGER NOT NULL,
27 Huisnummer INTEGER NOT NULL,
28 Foto INTEGER NOT NULL,
29 PRIMARY KEY(BSN)
30);
31
32CREATE TABLE IF NOT EXISTS Reiskosten
33(
34 Kaartnummer INTEGER NOT NULL,
35 Klasse INTEGER NOT NULL,
36 Kaartnummer INTEGER NOT NULL,
37 PRIMARY KEY(Kaartnummer)
38);
39
40
41-- Create FKs
42ALTER TABLE Persoonsgegevens
43 ADD FOREIGN KEY (Kaartnummer)
44 REFERENCES Contactgegevens(Kaartnummer)
45 MATCH FULL
46 ON DELETE CASCADE
47 ON UPDATE CASCADE
48;
49
50ALTER TABLE Persoonsgegevens
51 ADD FOREIGN KEY (Kaartnummer)
52 REFERENCES Reiskosten(Kaartnummer)
53 MATCH SIMPLE
54 ON DELETE CASCADE
55 ON UPDATE CASCADE
56;
57
58ALTER TABLE Persoonsgegevens
59 ADD FOREIGN KEY (Achternaam)
60 REFERENCES Contactgegevens(Naam)
61 MATCH SIMPLE
62 ON DELETE CASCADE
63 ON UPDATE CASCADE
64;
65
66
67-- Create Indexes
68CREATE INDEX Index ON Persoonsgegevens ();
69CREATE INDEX Index ON Contactgegevens