This repository was archived by the owner on Jul 22, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathschema.sql
More file actions
86 lines (79 loc) · 2.43 KB
/
Copy pathschema.sql
File metadata and controls
86 lines (79 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
drop table if exists auth_users;
create table auth_users (
id integer primary key autoincrement,
username text unique not null,
hashword text not null,
salt integer not null,
email text not null,
display_name text default '',
blurb text default '',
artist_type text default 'thinker of grand ideas',
user_type integer default 0
);
create unique index user_login_idx ON auth_users(username, salt, hashword);
drop table if exists idea_stubs;
create table idea_stubs (
id integer primary key autoincrement,
stub text,
link text
);
drop table if exists ideas;
create table ideas (
id integer primary key autoincrement,
created_by integer not null,
display_text text not null,
plain_text text not null,
foreign key(created_by) references auth_users(id)
);
drop table if exists ideas_to_idea_stubs;
create table ideas_to_idea_stubs (
id integer primary key autoincrement,
idea_stub_id integer not null,
idea_id integer not null,
weight integer not null,
foreign key(idea_stub_id) references idea_stubs(id),
foreign key(idea_id) references ideas(id)
);
drop table if exists pinned_idea_stub;
create table pinned_idea_stub (
id integer primary key autoincrement,
idea_stub_id integer not null,
user_id integer not null,
weight integer not null,
foreign key(idea_stub_id) references idea_stubs(id),
foreign key(user_id) references auth_users(id)
);
drop table if exists claimed_idea;
create table claimed_idea (
id integer primary key autoincrement,
idea_id integer not null,
user_id integer not null,
foreign key(idea_id) references ideas(id),
foreign key(user_id) references auth_users(id)
);
drop table if exists posts;
create table posts (
id integer primary key autoincrement,
idea_id integer not null,
user_id integer not null,
title text,
format text,
post_date text,
content text,
external_link text,
foreign key(idea_id) references ideas(id),
foreign key(user_id) references auth_users(id)
);
drop table if exists suspensions;
create table suspensions (
id integer primary key autoincrement,
object_id integer not null,
object_type text not null, -- user, stub, idea, or post
suspended_by integer not null,
start_date float not null,
end_date float,
active boolean default true,
reason text not null default "This {object_type} has been suspended {duration} by {user}, no reason given",
foreign key(suspended_by) references auth_users(id)
);
create unique index suspension_idx on suspensions (object_id, object_type, active);