Files
klice25/create.sql
prokopparuzek 2cee105670 init
README + SQL
2025-09-03 19:53:16 +02:00

57 lines
1.6 KiB
SQL

DROP TABLE IF EXISTS TEAMS;
DROP TABLE IF EXISTS POSITIONS;
DROP TABLE IF EXISTS QR_CODES;
DROP INDEX IF EXISTS idx_qr_uid;
DROP TABLE IF EXISTS CIPHERS;
DROP TABLE IF EXISTS DIFFICULTY_LEVELS;
DROP TABLE IF EXISTS TASKS;
DROP TABLE IF EXISTS ADMINS;
CREATE TABLE TEAMS (
id INTEGER PRIMARY KEY,
name VARCHAR(100) NOT NULL,
city VARCHAR(100) NOT NULL,
difficulty_level INTEGER NOT NULL,
password VARCHAR(255) NOT NULL,
last_cipher INTEGER DEFAULT 0,
penalty INTEGER DEFAULT 0,
FOREIGN KEY (difficulty_level) REFERENCES DIFFICULTY_LEVELS(id)
);
CREATE TABLE POSITIONS (
id INTEGER PRIMARY KEY,
gps VARCHAR(100) NOT NULL,
clue TEXT NOT NULL
);
CREATE TABLE QR_CODES (
id INTEGER PRIMARY KEY,
position_id INTEGER NOT NULL,
uid VARCHAR(100) NOT NULL,
FOREIGN KEY (position_id) REFERENCES positions(id)
);
CREATE UNIQUE INDEX idx_qr_uid ON QR_codes(uid);
CREATE TABLE CIPHERS (
id INTEGER PRIMARY KEY,
assignment TEXT NOT NULL,
solution TEXT NOT NULL,
clue TEXT NOT NULL
);
CREATE TABLE DIFFICULTY_LEVELS (
id INTEGER PRIMARY KEY,
level_name VARCHAR(100) NOT NULL
);
CREATE TABLE TASKS (
id INTEGER PRIMARY KEY,
cipher_id INTEGER NOT NULL,
position_id INTEGER NOT NULL,
difficulty_level INTEGER NOT NULL,
order_num INTEGER NOT NULL,
end_clue TEXT NOT NULL,
FOREIGN KEY (cipher_id) REFERENCES CIPHERS(id),
FOREIGN KEY (position_id) REFERENCES POSITIONS(id),
FOREIGN KEY (difficulty_level) REFERENCES DIFFICULTY_LEVELS(id)
);
CREATE TABLE ADMINS (
id INTEGER PRIMARY KEY,
username VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);