2019-03-04 08:39:07 -08:00
|
|
|
create table post (
|
|
|
|
id serial primary key,
|
|
|
|
name varchar(100) not null,
|
2019-03-26 11:00:18 -07:00
|
|
|
url text, -- These are both optional, a post can just have a title
|
|
|
|
body text,
|
2019-04-02 23:49:32 -07:00
|
|
|
creator_id int references user_ on update cascade on delete cascade not null,
|
2019-03-26 11:00:18 -07:00
|
|
|
community_id int references community on update cascade on delete cascade not null,
|
2019-04-19 21:06:25 -07:00
|
|
|
removed boolean default false not null,
|
|
|
|
locked boolean default false not null,
|
2019-03-04 19:52:09 -08:00
|
|
|
published timestamp not null default now(),
|
|
|
|
updated timestamp
|
2019-03-04 08:39:07 -08:00
|
|
|
);
|
|
|
|
|
|
|
|
create table post_like (
|
|
|
|
id serial primary key,
|
2019-03-05 17:00:01 -08:00
|
|
|
post_id int references post on update cascade on delete cascade not null,
|
2019-04-02 23:49:32 -07:00
|
|
|
user_id int references user_ on update cascade on delete cascade not null,
|
2019-03-05 17:00:01 -08:00
|
|
|
score smallint not null, -- -1, or 1 for dislike, like, no row for no opinion
|
2019-03-30 17:08:07 -07:00
|
|
|
published timestamp not null default now(),
|
2019-04-02 23:49:32 -07:00
|
|
|
unique(post_id, user_id)
|
2019-03-04 08:39:07 -08:00
|
|
|
);
|
2019-03-30 17:08:07 -07:00
|
|
|
|
2019-04-19 21:06:25 -07:00
|
|
|
create table post_saved (
|
|
|
|
id serial primary key,
|
|
|
|
post_id int references post on update cascade on delete cascade not null,
|
|
|
|
user_id int references user_ on update cascade on delete cascade not null,
|
|
|
|
published timestamp not null default now(),
|
|
|
|
unique(post_id, user_id)
|
|
|
|
);
|
|
|
|
|
|
|
|
create table post_read (
|
|
|
|
id serial primary key,
|
|
|
|
post_id int references post on update cascade on delete cascade not null,
|
|
|
|
user_id int references user_ on update cascade on delete cascade not null,
|
|
|
|
published timestamp not null default now(),
|
|
|
|
unique(post_id, user_id)
|
|
|
|
);
|