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) );