2023-10-11 06:40:09 +02:00
|
|
|
CREATE TABLE composer (
|
2023-10-08 21:46:31 +02:00
|
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
2023-10-11 06:46:21 +02:00
|
|
|
first_name VARCHAR(255) NOT NULL,
|
2023-10-11 06:54:39 +02:00
|
|
|
name VARCHAR(255) NOT NULL,
|
2023-10-11 07:10:52 +02:00
|
|
|
date_of_birth DATE NOT NULL,
|
2023-10-11 07:13:38 +02:00
|
|
|
date_of_death DATE
|
2023-10-08 21:46:31 +02:00
|
|
|
);
|
|
|
|
|
|
2023-10-13 06:39:44 +02:00
|
|
|
CREATE TABLE work (
|
2023-10-08 21:46:31 +02:00
|
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
2023-10-13 06:46:19 +02:00
|
|
|
comp_id INTEGER NOT NULL,
|
2023-10-13 06:49:19 +02:00
|
|
|
year INTEGER,
|
2023-10-13 06:50:56 +02:00
|
|
|
opus VARCHAR(15),
|
2023-10-13 06:53:02 +02:00
|
|
|
collection VARCHAR(127),
|
2023-10-13 06:55:52 +02:00
|
|
|
main_key VARCHAR(15),
|
2023-10-13 06:59:14 +02:00
|
|
|
title VARCHAR(127),
|
2023-10-13 07:01:51 +02:00
|
|
|
mov_title VARCHAR(127),
|
2023-10-18 06:38:04 +02:00
|
|
|
alias VARCHAR(127),
|
2023-10-18 06:40:11 +02:00
|
|
|
work_directory VARCHAR(31),
|
2023-10-18 06:41:51 +02:00
|
|
|
wd_number VARCHAR(15),
|
2023-10-13 06:46:19 +02:00
|
|
|
FOREIGN KEY(comp_id) REFERENCES composer(id)
|
2023-10-08 21:46:31 +02:00
|
|
|
);
|
|
|
|
|
|
2023-10-18 06:44:39 +02:00
|
|
|
CREATE TABLE movement (
|
2023-10-18 06:48:39 +02:00
|
|
|
work_id INTEGER NOT NULL,
|
2023-10-18 06:52:29 +02:00
|
|
|
mov_number INTEGER NOT NULL,
|
2023-10-08 21:46:31 +02:00
|
|
|
Nummer VARCHAR(15),
|
|
|
|
|
Bezeichnung VARCHAR(63),
|
|
|
|
|
Tonart VARCHAR(15),
|
|
|
|
|
Aufnahme BLOB,
|
2023-10-18 06:52:29 +02:00
|
|
|
PRIMARY KEY(work_id, mov_number),
|
2023-10-18 06:48:39 +02:00
|
|
|
FOREIGN KEY(work_id) REFERENCES work(id)
|
2023-10-08 21:46:31 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE Spieler_in (
|
|
|
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
2023-10-11 06:46:21 +02:00
|
|
|
first_name VARCHAR(255) NOT NULL,
|
2023-10-08 21:46:31 +02:00
|
|
|
Nachname VARCHAR(255) NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE Konzert (
|
|
|
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
|
|
|
Datum DATE,
|
|
|
|
|
Uhrzeit VARCHAR(5),
|
|
|
|
|
Saal VARCHAR(255)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE beherrscht(
|
2023-10-18 06:48:39 +02:00
|
|
|
work_id INTEGER NOT NULL,
|
2023-10-08 21:46:31 +02:00
|
|
|
Satz_id INTEGER NOT NULL,
|
|
|
|
|
Spieler_in_id INTEGER NOT NULL,
|
|
|
|
|
Vorlauf INTEGER DEFAULT 7,
|
2023-10-18 06:48:39 +02:00
|
|
|
PRIMARY KEY(work_id, Satz_id, Spieler_in_id),
|
2023-10-18 06:52:29 +02:00
|
|
|
FOREIGN KEY(work_id, Satz_id) REFERENCES movement(work_id, mov_number),
|
2023-10-08 21:46:31 +02:00
|
|
|
FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE spielt_in(
|
|
|
|
|
Konzert_id INTEGER NOT NULL,
|
|
|
|
|
Spieler_in_id INTEGER NOT NULL,
|
2023-10-18 06:48:39 +02:00
|
|
|
work_id INTEGER NOT NULL,
|
2023-10-08 21:46:31 +02:00
|
|
|
Satz_id INTEGER NOT NULL,
|
2023-10-18 06:48:39 +02:00
|
|
|
PRIMARY KEY(Konzert_id, Spieler_in_id, work_id, Satz_id),
|
2023-10-08 21:46:31 +02:00
|
|
|
FOREIGN KEY(Konzert_id) REFERENCES Konzert(id),
|
2023-10-18 06:52:29 +02:00
|
|
|
FOREIGN KEY(work_id, Satz_id) REFERENCES movement(work_id, mov_number),
|
2023-10-08 21:46:31 +02:00
|
|
|
FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id)
|
|
|
|
|
);
|