]> git.sesse.net Git - ccbs/blobdiff - sql/ccbs.sql
Pull in changes from --baby.
[ccbs] / sql / ccbs.sql
index 9f0cdeaa283e933da933674715dd187f51fb7e6d..756f54c4e5c35f09eb092e7b29ee7908a396e303 100644 (file)
@@ -10,8 +10,19 @@ CREATE TABLE machines (
 CREATE TABLE countries (
        country SERIAL PRIMARY KEY,
        countryname VARCHAR NOT NULL,
+       countrycode CHAR(3) NOT NULL,   -- IOC country code
 
-       UNIQUE ( countryname )
+       UNIQUE ( countryname ),
+       UNIQUE ( countrycode )
+);
+
+CREATE TABLE clubs (
+       club SERIAL PRIMARY KEY,
+       clubname VARCHAR NOT NULL,
+       clubcode CHAR(3) NOT NULL,
+
+       UNIQUE ( clubname ),
+       UNIQUE ( clubcode )
 );
 
 CREATE TABLE songs (
@@ -57,9 +68,13 @@ CREATE TABLE songratings (
 );
 CREATE INDEX songratings_feetrating ON songratings ( feetrating );
 
+CREATE VIEW max_single_feetrating AS SELECT machine,song,MAX(feetrating) AS feetrating FROM songratings WHERE playmode='single' GROUP BY machine,song;
+
 CREATE TABLE players (
        player SERIAL PRIMARY KEY,
        nick VARCHAR NOT NULL,
+       country INTEGER NOT NULL REFERENCES countries,
+       club INTEGER REFERENCES clubs,
 
        UNIQUE ( nick )
 );
@@ -98,8 +113,7 @@ CREATE TABLE tournamentrankings (
        player INTEGER NOT NULL REFERENCES players,
        points INTEGER,
 
-       UNIQUE (tournament, player),
-       PRIMARY KEY (tournament, ranking)
+       PRIMARY KEY (tournament, player)
 );
 
 CREATE TABLE rounds (
@@ -176,8 +190,13 @@ CREATE TABLE bigscreen.active_groups (
        tournament INTEGER NOT NULL REFERENCES bigscreen.active_tournament,
        round INTEGER NOT NULL,
        parallel INTEGER NOT NULL,
+       num_machines INTEGER NOT NULL,
+       players_per_machine INTEGER NOT NULL CHECK ( players_per_machine IN (1, 2) ),
        last_updated TIMESTAMP NOT NULL,
 
        PRIMARY KEY ( tournament, round, parallel ),
        FOREIGN KEY ( tournament, round, parallel ) REFERENCES groups
 );
+CREATE TABLE bigscreen.active_screens (
+       id VARCHAR NOT NULL PRIMARY KEY
+);