forked from lavina/lavina
35 lines
864 B
MySQL
35 lines
864 B
MySQL
|
CREATE TABLE users (
|
||
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||
|
name STRING UNIQUE NOT NULL
|
||
|
);
|
||
|
|
||
|
-- for development only, replace with properly hashed passwords later
|
||
|
CREATE TABLE challenges_plain_password
|
||
|
(
|
||
|
user_id INTEGER PRIMARY KEY NOT NULL,
|
||
|
password STRING NOT NULL
|
||
|
);
|
||
|
|
||
|
CREATE TABLE rooms
|
||
|
(
|
||
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||
|
name STRING UNIQUE NOT NULL,
|
||
|
topic STRING NOT NULL,
|
||
|
message_count INTEGER NOT NULL DEFAULT 0
|
||
|
);
|
||
|
|
||
|
CREATE TABLE messages (
|
||
|
room_id INTEGER NOT NULL,
|
||
|
id INTEGER NOT NULL, -- unique per room, sequential in one room
|
||
|
content STRING NOT NULL,
|
||
|
PRIMARY KEY (room_id, id)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE memberships
|
||
|
(
|
||
|
user_id INTEGER NOT NULL,
|
||
|
room_id INTEGER NOT NULL,
|
||
|
status INTEGER NOT NULL, -- 0 for not-joined, 1 for joined, 2 for banned
|
||
|
PRIMARY KEY (user_id, room_id)
|
||
|
);
|