-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlaunchdatabase.sql
62 lines (53 loc) · 1.87 KB
/
launchdatabase.sql
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
56
57
58
59
60
61
62
CREATE TABLE filesstored(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
fileid VARCHAR(16) NOT NULL,
responsible BOOLEAN DEFAULT false,
storing BOOLEAN DEFAULT true,
requestingpeer VARCHAR(16),
desiredrepdeg INTEGER,
lasttimestored TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE peers(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
peerid VARCHAR(16) NOT NULL,
ip VARCHAR(15) NOT NULL,
port INT NOT NULL
);
CREATE TABLE backupsrequested(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
fileid VARCHAR(16) NOT NULL,
filename VARCHAR(128) NOT NULL,
chunksNum INTEGER NOT NULL,
desiredrepdeg INTEGER NOT NULL,
encrypt_key VARCHAR(256)
);
CREATE TABLE chunksstored(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
chunkid INT NOT NULL,
fileid VARCHAR(16) NOT NULL,
currentrepdeg INTEGER,
size INTEGER NOT NULL
);
ALTER TABLE chunksstored
ADD CONSTRAINT chunksstored_PK Primary Key (id);
ALTER TABLE chunksstored
ADD CONSTRAINT chunksstored_UNIQUE UNIQUE (chunkid,fileid);
ALTER TABLE filesstored
ADD CONSTRAINT filesstored_PK Primary Key (id);
ALTER TABLE filesstored
ADD CONSTRAINT filesstored_UNIQUE UNIQUE (fileid);
ALTER TABLE peers
ADD CONSTRAINT peers_PK Primary Key (id);
ALTER TABLE peers
ADD CONSTRAINT peers_UNIQUE1 UNIQUE (peerid);
ALTER TABLE peers
ADD CONSTRAINT peers_UNIQUE2 UNIQUE (ip,port);
ALTER TABLE backupsrequested
ADD CONSTRAINT backupsrequested_PK PRIMARY KEY (id);
ALTER TABLE backupsrequested
ADD CONSTRAINT backupsrequested_UNIQUE UNIQUE (fileid);
ALTER TABLE filesstored
ADD CONSTRAINT filesstored_FK Foreign Key (requestingpeer)
REFERENCES peers(peerid);
ALTER TABLE chunksstored
ADD CONSTRAINT chunksstored_FK Foreign Key (fileid) REFERENCES filesstored(fileid) ON DELETE CASCADE;