fetches plans so far, TODO: prepare for going public: translate, comment

This commit is contained in:
2023-10-08 21:46:31 +02:00
parent 1eaaf7adc3
commit fe76845566
8 changed files with 722 additions and 0 deletions

67
repertoire.sql Normal file
View File

@@ -0,0 +1,67 @@
CREATE TABLE Komponist_in (
id INTEGER NOT NULL PRIMARY KEY,
Vorname VARCHAR(255) NOT NULL,
Name VARCHAR(255) NOT NULL,
Geburtsdatum DATE NOT NULL,
Sterbedatum DATE
);
CREATE TABLE Werk (
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),
FOREIGN KEY(Komp_id) REFERENCES Komponist_in(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),
FOREIGN KEY(Werk_id) REFERENCES Werk(id)
);
CREATE TABLE Spieler_in (
id INTEGER NOT NULL PRIMARY KEY,
Vorname 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)
);