Files
piano_repertoire/repertoire.sql

68 lines
1.8 KiB
MySQL
Raw Normal View History

2023-10-11 06:40:09 +02:00
CREATE TABLE composer (
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-13 06:39:44 +02:00
CREATE TABLE work (
id INTEGER NOT NULL PRIMARY KEY,
Komp_id INTEGER NOT NULL,
VOE_Jahr INTEGER,
Opus VARCHAR(15),
Sammlung VARCHAR(127),
Haupttonart VARCHAR(15),
Titel VARCHAR(127),
Satztitel VARCHAR(127),
Aliasname VARCHAR(127),
Werkverzeichnis VARCHAR(31),
Werkverzeichnisnummer VARCHAR(15),
2023-10-11 06:40:09 +02:00
FOREIGN KEY(Komp_id) REFERENCES composer(id)
);
CREATE TABLE Satz (
Werk_id INTEGER NOT NULL,
Lfd_Satznummer INTEGER NOT NULL,
Nummer VARCHAR(15),
Bezeichnung VARCHAR(63),
Tonart VARCHAR(15),
Aufnahme BLOB,
PRIMARY KEY(Werk_id, Lfd_Satznummer),
2023-10-13 06:39:44 +02:00
FOREIGN KEY(Werk_id) REFERENCES work(id)
);
CREATE TABLE Spieler_in (
id INTEGER NOT NULL PRIMARY KEY,
2023-10-11 06:46:21 +02:00
first_name VARCHAR(255) NOT NULL,
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(
Werk_id INTEGER NOT NULL,
Satz_id INTEGER NOT NULL,
Spieler_in_id INTEGER NOT NULL,
Vorlauf INTEGER DEFAULT 7,
PRIMARY KEY(Werk_id, Satz_id, Spieler_in_id),
FOREIGN KEY(Werk_id, Satz_id) REFERENCES Satz(Werk_id, Lfd_Satznummer),
FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id)
);
CREATE TABLE spielt_in(
Konzert_id INTEGER NOT NULL,
Spieler_in_id INTEGER NOT NULL,
Werk_id INTEGER NOT NULL,
Satz_id INTEGER NOT NULL,
PRIMARY KEY(Konzert_id, Spieler_in_id, Werk_id, Satz_id),
FOREIGN KEY(Konzert_id) REFERENCES Konzert(id),
FOREIGN KEY(Werk_id, Satz_id) REFERENCES Satz(Werk_id, Lfd_Satznummer),
FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id)
);