X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=ccbs.sql;fp=ccbs.sql;h=0805631093381504ac00be70f829f1ea07916b7c;hp=0000000000000000000000000000000000000000;hb=8afe8aaa42f52e2a86cb08fb8bb2ee379156855f;hpb=a53c9432609090a8430d2d4f18d32df98455850c diff --git a/ccbs.sql b/ccbs.sql new file mode 100644 index 0000000..0805631 --- /dev/null +++ b/ccbs.sql @@ -0,0 +1,49 @@ + +CREATE TABLE songs ( + song SERIAL PRIMARY KEY, + title VARCHAR NOT NULL, + artist VARCHAR NOT NULL +); + +CREATE TABLE songratings ( + song INTEGER NOT NULL REFERENCES songs, + playmode VARCHAR NOT NULL CHECK playmode IN ('single','double'), + difficulty VARCHAR NOT NULL CHECK difficulty IN ('beginner','standard','difficult','expert','challenge'), + feetrating INTEGER NOT NULL CHECK (feetrating >= 0 AND feetrating <= 10) + + PRIMARY KEY (song, playmode, difficulty) +); + +CREATE TABLE players ( + player SERIAL PRIMARY KEY, + nick VARCHAR NOT NULL +); + +CREATE TABLE seasons ( + season SERIAL PRIMARY KEY, + name VARCHAR NOT NULL +); + +CREATE TABLE tournament ( + tournament SERIAL PRIMARY KEY, + season INTEGER NOT NULL REFERENCES seasons, + name VARCHAR NOT NULL +); + +CREATE TABLE rounds ( + tournament INTEGER NOT NULL REFERENCES tournaments, + level INTEGER NOT NULL, + parallel INTEGER NOT NULL + + PRIMARY KEY (tournament, level, parallel) +); + +CREATE TABLE roundparticipation ( + tournament INTEGER NOT NULL, + level INTEGER NOT NULL, + parallel INTEGER NOT NULL, + player INTEGER NOT NULL REFERENCES players, + + FOREIGN KEY ( tournament, level, parallel ) REFERENCES rounds ( tournament, level, parallel ), + PRIMARY KEY ( tournament, level, parallel, player ) +);