Files
abot/game_task/game_task.sql

46 lines
1.7 KiB
SQL

USE message_archive;
CREATE TABLE t_encyclopedia_groups (
group_id INT PRIMARY KEY,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB CHARACTER SET utf8mb4;
CREATE TABLE t_encyclopedia_players (
player_id INT NOT NULL,
group_id INT NOT NULL,
player_name VARCHAR(50) NOT NULL,
points INT DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (player_id, group_id),
FOREIGN KEY (group_id) REFERENCES t_encyclopedia_groups(group_id)
) ENGINE=InnoDB CHARACTER SET utf8mb4;
CREATE TABLE t_encyclopedia_active_tasks (
active_task_id INT AUTO_INCREMENT PRIMARY KEY,
group_id INT NOT NULL,
question VARCHAR(255) NOT NULL,
answer VARCHAR(100) NOT NULL,
score INT NOT NULL,
description TEXT,
holder_id INT NOT NULL,
assigned_at DATETIME DEFAULT CURRENT_TIMESTAMP,
status ENUM('pending', 'completed') DEFAULT 'pending',
FOREIGN KEY (group_id) REFERENCES t_encyclopedia_groups(group_id),
FOREIGN KEY (holder_id, group_id) REFERENCES t_encyclopedia_players(player_id, group_id),
INDEX (group_id)
) ENGINE=InnoDB CHARACTER SET utf8mb4;
CREATE TABLE t_encyclopedia_task_history (
history_id INT AUTO_INCREMENT PRIMARY KEY,
group_id INT NOT NULL,
active_task_id INT NOT NULL,
player_id INT NOT NULL,
answer VARCHAR(100) NOT NULL,
is_correct BOOLEAN DEFAULT FALSE,
points_earned INT DEFAULT 0,
completed_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (group_id) REFERENCES t_encyclopedia_groups(group_id),
FOREIGN KEY (active_task_id) REFERENCES t_encyclopedia_active_tasks(active_task_id),
FOREIGN KEY (player_id, group_id) REFERENCES t_encyclopedia_players(player_id, group_id),
INDEX (group_id)
) ENGINE=InnoDB CHARACTER SET utf8mb4;