Files
any-remark/backend/migrations/0001-init.sql

38 lines
1.0 KiB
SQL

-- all ids will be TEXT
-- make a table for storing webpages and related opengraph information in json format
CREATE TABLE webpages (
id TEXT PRIMARY KEY,
url TEXT NOT NULL UNIQUE,
opengraph JSONB NOT NULL
);
-- add an index to the url column
CREATE INDEX url_index ON webpages (url);
-- make a table for storing comments on webpages and replies to comments
CREATE TABLE comments (
id TEXT PRIMARY KEY,
webpage_id TEXT NOT NULL,
parent_id TEXT, -- NULL if top-level comment
commenter TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- make a table for storing votes on comments and webpages
CREATE TABLE votes (
id TEXT PRIMARY KEY,
webpage_id TEXT NOT NULL,
comment_id TEXT, -- NULL if vote is on webpage
voter TEXT NOT NULL,
vote_type TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- make a table for storing users
CREATE TABLE users (
id TEXT PRIMARY KEY,
username TEXT NOT NULL,
avatar TEXT NOT NULL
);