-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfilehosting.sql
More file actions
55 lines (47 loc) · 1.39 KB
/
filehosting.sql
File metadata and controls
55 lines (47 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CREATE TABLE files (
id SERIAL NOT NULL,
name CHARACTER VARYING(255) NOT NULL,
original_name CHARACTER VARYING(255) NOT NULL,
path CHARACTER VARYING(255) NOT NULL,
thumbnail_path CHARACTER VARYING(255),
description CHARACTER VARYING(120),
size INTEGER NOT NULL,
mime_type CHARACTER VARYING(255),
date TIMESTAMP DEFAULT current_timestamp,
downloads INTEGER DEFAULT 0,
user_id INTEGER,
user_token CHARACTER VARYING(64),
media_info text,
PRIMARY KEY (id),
UNIQUE (name)
);
COMMENT ON COLUMN files.user_token IS 'For anonymous upload';
CREATE TABLE users (
id SERIAL NOT NULL,
name CHARACTER VARYING(30),
avatar CHARACTER VARYING(255),
email CHARACTER VARYING(255),
password CHARACTER VARYING(255),
auth_token CHARACTER VARYING(64),
PRIMARY KEY (id),
UNIQUE (name, email, auth_token)
);
ALTER TABLE files
ADD FOREIGN KEY (user_id) REFERENCES users(id);
CREATE TABLE comments (
id SERIAL NOT NULL,
file_id INTEGER NOT NULL,
parent_id INTEGER,
user_id INTEGER,
date TIMESTAMP DEFAULT current_timestamp,
text CHARACTER VARYING(250),
matpath CHARACTER VARYING(255),
PRIMARY KEY (id)
);
COMMENT ON COLUMN comments.matpath IS 'Materialized path';
ALTER TABLE comments
ADD FOREIGN KEY (file_id) REFERENCES files(id);
ALTER TABLE comments
ADD FOREIGN KEY (parent_id) REFERENCES comments(id);
ALTER TABLE comments
ADD FOREIGN KEY (user_id) REFERENCES users(id);