Files
myriad/myriad/schema.sql

102 lines
2.5 KiB
SQL

DROP TABLE IF EXISTS user;
DROP TABLE IF EXISTS member;
DROP TABLE IF EXISTS icons;
DROP TABLE IF EXISTS groups;
DROP TABLE IF EXISTS group_members;
DROP TABLE IF EXISTS blog;
DROP TABLE IF EXISTS blinkies;
DROP TABLE IF EXISTS stamps;
DROP TABLE IF EXISTS front_log;
DROP TABLE IF EXISTS sections;
CREATE TABLE user (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL
);
CREATE TABLE member (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
created TIMESTAMP,
member_name TEXT NOT NULL,
subtitle TEXT DEFAULT "",
bio TEXT,
main_icon INTEGER,
homepage BOOLEAN NOT NULL DEFAULT 0,
front BOOLEAN NOT NULL DEFAULT 0,
public BOOLEAN NOT NULL DEFAULT 1,
theme TEXT NOT NULL DEFAULT 'default',
FOREIGN KEY (user_id) REFERENCES user (id),
FOREIGN KEY (main_icon) REFERENCES icons (id)
);
CREATE TABLE icons (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
icon_location TEXT NOT NULL,
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE groups (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_name TEXT NOT NULL,
group_description TEXT,
public BOOLEAN NOT NULL DEFAULT 1
);
CREATE TABLE group_members (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_id INTEGER NOT NULL,
member_id INTEGER NOT NULL,
FOREIGN KEY (group_id) REFERENCES groups (id),
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE blog (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
created TIMESTAMP,
title TEXT,
content TEXT,
public BOOLEAN NOT NULL DEFAULT 1,
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE blinkies (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
blinkie_location TEXT NOT NULL,
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE stamps (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
stamp_location TEXT NOT NULL,
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE front_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
start_time TIMESTAMP,
end_time TIMESTAMP,
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE sections (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
title TEXT,
content TEXT,
position INTEGER,
FOREIGN KEY (member_id) REFERENCES member (id)
);
CREATE TABLE pages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT,
position INTEGER
);