/
V1.0.0__initial.sql
95 lines (86 loc) · 2.62 KB
/
V1.0.0__initial.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
CREATE TABLE IF NOT EXISTS `filemeta` (
`id` varchar(254) not null primary key,
`timestamp` varchar(40) not null,
`mimetype` varchar(254) not null,
`length` bigint not null,
`checksum` varchar(254) not null,
`chunks` int not null,
`chunksize` int not null
);
CREATE TABLE IF NOT EXISTS `filechunk` (
fileId varchar(254) not null,
chunkNr int not null,
chunkLength int not null,
chunkData mediumblob not null,
primary key (fileId, chunkNr)
);
CREATE TABLE `account_` (
`id` varchar(254) not null primary key,
`login` varchar(254) not null,
`source` varchar(254) not null,
`state` varchar(254) not null,
`password` varchar(254) not null,
`email` varchar(254),
`admin` boolean not null,
`logincount` int not null,
`lastlogin` varchar(40),
`created` varchar(40) not null,
unique(`login`)
);
CREATE TABLE `invitation` (
`id` varchar(254) not null primary key,
`created` varchar(40) not null
);
CREATE TABLE `alias_` (
`id` varchar(254) not null primary key,
`account_id` varchar(254) not null,
`name_` varchar(254) not null,
`validity` int not null,
`enabled` boolean not null,
`created` varchar(40) not null,
foreign key (`account_id`) references `account_` (`id`)
on delete cascade
);
CREATE TABLE `share` (
`id` varchar(254) not null primary key,
`account_id` varchar(254) not null,
`alias_id` varchar(254),
`name_` varchar(254),
`validity` int not null,
`max_views` int not null,
`password` varchar(254),
`description` text,
`created` varchar(40) not null,
foreign key (`account_id`) references `account_` (`id`)
on delete cascade,
foreign key (`alias_id`) references `alias_` (`id`)
on delete set null
);
CREATE TABLE `publish_share` (
`id` varchar(254) not null primary key,
`share_id` varchar(254) not null,
`enabled` boolean not null,
`views` int not null,
`last_access` varchar(40),
`publish_date` varchar(40) not null,
`publish_until` varchar(40) not null,
`created` varchar(40) not null,
unique(`share_id`),
foreign key (`share_id`) references `share` (`id`)
on delete cascade
);
CREATE INDEX `publish_share_until_idx` ON `publish_share`(`publish_until`);
CREATE INDEX `publish_share_date_idx` ON `publish_share`(`publish_date`);
CREATE TABLE `share_file` (
`id` varchar(254) not null primary key,
`share_id` varchar(254) not null,
`file_id` varchar(254) not null,
`filename` varchar(2000),
`created` varchar(40) not null,
`real_size` bigint not null,
unique(`share_id`, `file_id`),
foreign key (`share_id`) references `share` (`id`)
on delete cascade,
foreign key (`file_id`) references `filemeta` (`id`)
on delete cascade
);