85 lines
2.2 KiB
SQL
85 lines
2.2 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 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 NOT NULL DEFAULT CURRENT_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 NOT NULL DEFAULT CURRENT_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 sections (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
member_id INTEGER NOT NULL,
|
|
title TEXT,
|
|
content TEXT,
|
|
FOREIGN KEY (member_id) REFERENCES member (id)
|
|
); |