mirror of https://github.com/EasyCTF/librectf
...
This commit is contained in:
parent
7d58851583
commit
dbf6c870c2
|
@ -1,2 +1,4 @@
|
|||
DROP TABLE `chals`;
|
||||
DROP TABLE `users`;
|
||||
DROP TABLE IF EXISTS `solves`;
|
||||
DROP TABLE IF EXISTS `chals`;
|
||||
DROP TABLE IF EXISTS `users`;
|
||||
DROP TABLE IF EXISTS `teams`;
|
||||
|
|
|
@ -1,9 +1,49 @@
|
|||
CREATE TABLE IF NOT EXISTS `chals` (
|
||||
`id` INTEGER PRIMARY KEY
|
||||
`id` INTEGER PRIMARY KEY AUTO_INCREMENT,
|
||||
`title` VARCHAR(64) NOT NULL,
|
||||
`enabled` BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
|
||||
-- constraints
|
||||
UNIQUE(`title`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `teams` (
|
||||
`id` INTEGER PRIMARY KEY AUTO_INCREMENT,
|
||||
`name` VARCHAR(20) NOT NULL,
|
||||
|
||||
-- constraints
|
||||
UNIQUE (`name`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` INTEGER PRIMARY KEY,
|
||||
`id` INTEGER PRIMARY KEY AUTO_INCREMENT,
|
||||
`email` VARCHAR(128) NOT NULL,
|
||||
`password` VARCHAR(64) NOT NULL
|
||||
`email_verified` BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
`password` VARCHAR(64) NOT NULL,
|
||||
`admin` BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
|
||||
-- foreign keys
|
||||
`team_id` INTEGER NULL,
|
||||
|
||||
-- constraints
|
||||
UNIQUE (`email`),
|
||||
CONSTRAINT `user_team_fk` FOREIGN KEY (`team_id`) REFERENCES `teams`(`id`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `solves` (
|
||||
`id` INTEGER PRIMARY KEY AUTO_INCREMENT,
|
||||
|
||||
`timestamp` DATETIME NOT NULL DEFAULT NOW(),
|
||||
`flag` TEXT NOT NULL,
|
||||
|
||||
-- foreign keys
|
||||
`chal_id` INTEGER NOT NULL,
|
||||
`team_id` INTEGER NOT NULL,
|
||||
`user_id` INTEGER NOT NULL,
|
||||
|
||||
-- constraints
|
||||
UNIQUE(`chal_id`, `team_id`),
|
||||
CONSTRAINT `solve_chal_fk` FOREIGN KEY (`chal_id`) REFERENCES `chals`(`id`),
|
||||
CONSTRAINT `solve_team_fk` FOREIGN KEY (`team_id`) REFERENCES `teams`(`id`),
|
||||
CONSTRAINT `solve_user_fk` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`)
|
||||
);
|
||||
|
|
|
@ -1,6 +1,26 @@
|
|||
table! {
|
||||
chals (id) {
|
||||
id -> Integer,
|
||||
title -> Varchar,
|
||||
enabled -> Bool,
|
||||
}
|
||||
}
|
||||
|
||||
table! {
|
||||
solves (id) {
|
||||
id -> Integer,
|
||||
timestamp -> Datetime,
|
||||
flag -> Text,
|
||||
chal_id -> Integer,
|
||||
team_id -> Integer,
|
||||
user_id -> Integer,
|
||||
}
|
||||
}
|
||||
|
||||
table! {
|
||||
teams (id) {
|
||||
id -> Integer,
|
||||
name -> Varchar,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,11 +28,21 @@ table! {
|
|||
users (id) {
|
||||
id -> Integer,
|
||||
email -> Varchar,
|
||||
email_verified -> Bool,
|
||||
password -> Varchar,
|
||||
admin -> Bool,
|
||||
team_id -> Nullable<Integer>,
|
||||
}
|
||||
}
|
||||
|
||||
joinable!(solves -> chals (chal_id));
|
||||
joinable!(solves -> teams (team_id));
|
||||
joinable!(solves -> users (user_id));
|
||||
joinable!(users -> teams (team_id));
|
||||
|
||||
allow_tables_to_appear_in_same_query!(
|
||||
chals,
|
||||
solves,
|
||||
teams,
|
||||
users,
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue