kemono2/db/schema/public/shares.sql
2024-11-26 00:11:49 +01:00

34 lines
1.3 KiB
SQL

CREATE TABLE shares(
id serial4 NOT NULL,
"name" varchar NOT NULL,
description varchar NOT NULL,
uploader int4 NULL,
added timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT shares_pkey PRIMARY KEY (id),
CONSTRAINT shares_uploader_fkey FOREIGN KEY (uploader) REFERENCES account(id)
);
CREATE INDEX shares_added_idx ON shares USING btree(added);
CREATE INDEX shares_uploader_idx ON shares USING btree(uploader);
CREATE TABLE lookup_share_relationships(
share_id int4 NOT NULL,
service varchar NOT NULL,
user_id varchar NOT NULL,
CONSTRAINT lookup_share_relationships_pkey PRIMARY KEY (share_id, service, user_id),
CONSTRAINT lookup_share_relationships_service_user_id_fkey FOREIGN KEY (service, user_id) REFERENCES lookup(service, id),
CONSTRAINT lookup_share_relationships_share_id_fkey FOREIGN KEY (share_id) REFERENCES shares(id)
);
CREATE TABLE file_share_relationships(
share_id int4 NOT NULL,
upload_url varchar NOT NULL,
upload_id varchar NOT NULL,
file_id int4 NULL,
filename varchar NOT NULL,
CONSTRAINT file_share_relationships_pkey PRIMARY KEY (share_id, upload_id),
CONSTRAINT file_share_relationships_file_id_fkey FOREIGN KEY (file_id) REFERENCES files(id),
CONSTRAINT file_share_relationships_share_id_fkey FOREIGN KEY (share_id) REFERENCES shares(id)
);