27 lines
663 B
SQL
27 lines
663 B
SQL
CREATE TABLE IF NOT EXISTS user (
|
|
id SERIAL PRIMARY KEY,
|
|
email TEXT UNIQUE,
|
|
username TEXT NOT NULL UNIQUE,
|
|
password_hash TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS channel (
|
|
id SERIAL PRIMARY KEY,
|
|
owner INT NOT NULL REFERENCES user(id) ON DELETE CASCADE,
|
|
name TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS membership (
|
|
user INT REFERENCES user(id),
|
|
channel INT REFERENCES channel(id),
|
|
PRIMARY KEY (user, channel)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS message (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
sender INT REFERENCES user(id) NOT NULL,
|
|
channel INT REFERENCES channel(id) NOT NULL,
|
|
type VARCHAR(32) NOT NULL,
|
|
content TEXT NOT NULL
|
|
);
|