ICRA26WM / database /schema.sql
qiukingballball's picture
squash history
c8b725d
-- Teams table
CREATE TABLE IF NOT EXISTS teams (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Submissions table
CREATE TABLE IF NOT EXISTS submissions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
team_id INTEGER NOT NULL,
file_path TEXT NOT NULL,
submit_time DATETIME DEFAULT CURRENT_TIMESTAMP,
score REAL,
status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'processing', 'completed', 'error', 'overlimit')),
error_message TEXT,
FOREIGN KEY (team_id) REFERENCES teams(id)
);
-- Daily limits tracking
CREATE TABLE IF NOT EXISTS daily_limits (
team_id INTEGER NOT NULL,
date DATE NOT NULL,
count INTEGER DEFAULT 0,
PRIMARY KEY (team_id, date),
FOREIGN KEY (team_id) REFERENCES teams(id)
);
-- Indexes for faster queries
CREATE INDEX IF NOT EXISTS idx_submissions_team_id ON submissions(team_id);
CREATE INDEX IF NOT EXISTS idx_submissions_status ON submissions(status);
CREATE INDEX IF NOT EXISTS idx_submissions_submit_time ON submissions(submit_time);
CREATE INDEX IF NOT EXISTS idx_daily_limits_team_date ON daily_limits(team_id, date);