53 lines
1.5 KiB
MySQL
53 lines
1.5 KiB
MySQL
|
create table meta (
|
||
|
version text -- schema version
|
||
|
);
|
||
|
|
||
|
insert into meta values ("1.0.0");
|
||
|
|
||
|
create table users (
|
||
|
user_id text, -- string (uuid1)
|
||
|
user_name text, -- string
|
||
|
auth_hash text, -- string (sha256 hash)
|
||
|
quip text, -- string (possibly empty)
|
||
|
bio text, -- string (possibly empty)
|
||
|
color int, -- int (from 0 to 6)
|
||
|
is_admin int, -- bool
|
||
|
created real -- floating point unix timestamp (when this user registered)
|
||
|
);
|
||
|
|
||
|
insert into users values (
|
||
|
"be105a40-6bd1-405f-9716-aa6158ac1eef", -- TODO replace UUID with incrementing int
|
||
|
"anon",
|
||
|
"8e97c0b197816a652fb489b21e63f664863daa991e2f8fd56e2df71593c2793f",
|
||
|
"",
|
||
|
"",
|
||
|
0,
|
||
|
0,
|
||
|
1650819851
|
||
|
);
|
||
|
|
||
|
-- TODO unique constraint on user_name?
|
||
|
-- TODO foreign keys
|
||
|
|
||
|
create table threads (
|
||
|
thread_id text, -- uuid string
|
||
|
author text, -- string (uuid1, user.user_id)
|
||
|
title text, -- string
|
||
|
last_mod real, -- floating point unix timestamp (of last post or post edit)
|
||
|
created real, -- floating point unix timestamp (when thread was made)
|
||
|
reply_count int, -- integer (incremental, starting with 0)
|
||
|
pinned int, -- boolean
|
||
|
last_author text -- uuid string
|
||
|
);
|
||
|
|
||
|
|
||
|
create table messages (
|
||
|
thread_id text, -- string (uuid1 of parent thread)
|
||
|
post_id int, -- integer (incrementing from 1)
|
||
|
author text, -- string (uuid1, user.user_id)
|
||
|
created real, -- floating point unix timestamp (when reply was posted)
|
||
|
edited int, -- bool
|
||
|
body text, -- string
|
||
|
send_raw int -- bool (1/true == never apply formatting)
|
||
|
);
|