24 lines
881 B
MySQL
24 lines
881 B
MySQL
|
CREATE TABLE app_flags_games (
|
||
|
game_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
game_seed UUID DEFAULT gen_random_uuid(),
|
||
|
uid VARCHAR DEFAULT NULL,
|
||
|
tags VARCHAR[] NOT NULL,
|
||
|
question_amount INT NOT NULL,
|
||
|
question_current INT DEFAULT 0 NOT NULL,
|
||
|
question_correct INT GENERATED ALWAYS AS (
|
||
|
(SELECT COUNT(*) FROM app_flags_games_answers a WHERE a.game_id = app_flags_games.game_id AND a.correct = TRUE)
|
||
|
) STORED,
|
||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
|
last_activity TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
|
FOREIGN KEY (uid) REFERENCES users (uid)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE app_flags_games_answers (
|
||
|
game_id UUID,
|
||
|
question INT NOT NULL,
|
||
|
correct BOOLEAN NOT NULL,
|
||
|
FOREIGN KEY (game_id) REFERENCES app_flags_games (game_id),
|
||
|
CONSTRAINT app_flags_games_answers_unique UNIQUE (game_id, question)
|
||
|
);
|
||
|
|