Files
crosspost/db/schema.sql

43 lines
1.1 KiB
SQL

CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE datasets (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
topics JSONB,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE events (
id SERIAL PRIMARY KEY,
dataset_id INTEGER NOT NULL,
parent_post_id INTEGER NOT NULL,
author VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP NOT NULL,
reply_to VARCHAR(255),
source VARCHAR(255) NOT NULL,
topic VARCHAR(255),
topic_confidence FLOAT,
ner_entities JSONB,
emotion_anger FLOAT,
emotion_disgust FLOAT,
emotion_fear FLOAT,
emotion_joy FLOAT,
emotion_sadness FLOAT,
FOREIGN KEY (parent_post_id) REFERENCES events(id) ON DELETE CASCADE,
FOREIGN KEY (dataset_id) REFERENCES datasets(id) ON DELETE CASCADE
);