create table users ( user_id integer unique not null primary key autoincrement, name varchar(32) unique not null, password varchar(128) not null, email varchar(254), about text not null default '', join_time integer not null, role integer not null default 0 ); create table threads ( thread_id integer unique not null primary key autoincrement, author_id integer not null, forum_id integer not null, create_time integer not null, modify_time integer not null, update_time integer not null, title varchar(64) not null, text text not null, score integer not null default 0, dead boolean not null default false ); create table comments ( comment_id integer unique not null primary key autoincrement, thread_id integer not null, author_id integer not null, parent_id integer, create_time integer not null, modify_time integer not null, text text not null, score integer not null default 0, dead boolean not null default false ); create table forums ( forum_id integer unique not null primary key autoincrement, name varchar(64) not null, description text, allowed_roles_mask integer not null ); -- Both of these speed up searches significantly if there are many threads or comments. -- Other indices have no measureable impact (yet, at least). create index forum_id on threads(forum_id); create index thread_id on comments(thread_id);