34 lines
1.3 KiB
SQL
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)
|
|
);
|