critch/migrations/20241113160730_critch.sql

44 lines
1.2 KiB
SQL

create extension if not exists "uuid-ossp";
create table artists (
id integer primary key generated always as identity,
artist_name varchar(128) not null unique,
bio text,
site varchar(256)
);
create table artworks (
id integer primary key generated always as identity,
title varchar(256),
description text,
url_source varchar(256),
artist_id integer not null,
comment_number integer not null default 0,
foreign key (artist_id) references artists(id)
);
create table comments (
id integer unique not null,
text text not null,
thread_id integer not null,
primary key (id, thread_id),
foreign key (thread_id) references artworks(id)
);
create table comment_relations (
thread_id integer,
foreign key (thread_id) references artworks(id),
in_reply_to_id integer,
foreign key (in_reply_to_id) references comments(id),
comment_id integer,
foreign key (comment_id) references comments(id),
primary key (thread_id, in_reply_to_id, comment_id)
);
create table files (
id uuid primary key default gen_random_uuid(),
alt_text text,
artwork_id integer,
foreign key (artwork_id) references artworks(id)
);