blob: 328e13e0a971deb6cefc07a5af98efdcaf62c124 [file] [log] [blame]
margarethad3c0fc92017-10-25 15:03:32 +02001CREATE TABLE IF NOT EXISTS role (
2 id INTEGER PRIMARY KEY AUTO_INCREMENT,
3 name varchar(100) NOT NULL,
margarethab42b9632017-10-25 18:34:12 +02004 UNIQUE INDEX name_index(name)
5);
6
7
8CREATE TABLE IF NOT EXISTS privilege (
9 id INTEGER PRIMARY KEY AUTO_INCREMENT,
10 name varchar(20) NOT NULL,
11 role_id int NOT NULL,
12 UNIQUE INDEX privilege_index(name, role_id),
13 FOREIGN KEY (role_id)
14 REFERENCES role (id)
margarethad3c0fc92017-10-25 15:03:32 +020015 ON DELETE CASCADE
16);
17
margarethab42b9632017-10-25 18:34:12 +020018
margaretha1f106f62017-10-18 22:27:30 +020019CREATE TABLE IF NOT EXISTS user_group (
20 id INTEGER PRIMARY KEY AUTO_INCREMENT,
21 name varchar(100) NOT NULL,
22 status varchar(100) NOT NULL,
margarethaf6d5a822017-10-19 19:51:20 +020023 created_by varchar(100) NOT NULL,
margarethabf11d8d2017-10-24 19:31:44 +020024 deleted_by varchar(100) DEFAULT NULL,
margarethaf6d5a822017-10-19 19:51:20 +020025 INDEX status_index(status)
margaretha1f106f62017-10-18 22:27:30 +020026);
27
28CREATE TABLE IF NOT EXISTS user_group_member (
29 id INTEGER PRIMARY KEY AUTO_INCREMENT,
30 user_id varchar(100) NOT NULL,
31 group_id int(11) NOT NULL,
32 status varchar(100) NOT NULL,
33 created_by varchar(100) NOT NULL,
34 deleted_by varchar(100) DEFAULT NULL,
35 UNIQUE INDEX unique_index (user_id,group_id),
margarethaf6d5a822017-10-19 19:51:20 +020036 INDEX status_index(status),
margaretha1f106f62017-10-18 22:27:30 +020037 FOREIGN KEY (group_id)
38 REFERENCES user_group (id)
39 ON DELETE CASCADE
40);
41
margaretha1f106f62017-10-18 22:27:30 +020042CREATE TABLE IF NOT EXISTS group_member_role (
43 id INTEGER PRIMARY KEY AUTO_INCREMENT,
44 group_member_id int(11) NOT NULL,
margarethad3c0fc92017-10-25 15:03:32 +020045 role_id int NOT NULL,
margaretha1f106f62017-10-18 22:27:30 +020046 UNIQUE INDEX unique_index (group_member_id,role_id),
47 FOREIGN KEY (group_member_id)
48 REFERENCES user_group_member (id)
49 ON DELETE CASCADE,
50 FOREIGN KEY (role_id)
51 REFERENCES role (id)
52 ON DELETE CASCADE
53);
54
55CREATE TABLE IF NOT EXISTS virtual_corpus (
56 id INTEGER PRIMARY KEY AUTO_INCREMENT,
57 name varchar(255) NOT NULL,
58 type varchar(100) NOT NULL,
59 required_access varchar(100) NOT NULL,
60 created_by varchar(100) NOT NULL,
61 description varchar(255) DEFAULT NULL,
62 status varchar(100) DEFAULT NULL,
63 collection_query varchar(2000) NOT NULL,
margarethaf6d5a822017-10-19 19:51:20 +020064 definition varchar(255) DEFAULT NULL,
65 INDEX owner_index (created_by),
66 INDEX type_index (type)
margaretha1f106f62017-10-18 22:27:30 +020067);
68
69CREATE TABLE IF NOT EXISTS virtual_corpus_access (
70 id INTEGER PRIMARY KEY AUTO_INCREMENT,
71 virtual_corpus_id int(11) NOT NULL,
72 user_group_id int(11) NOT NULL,
73 status varchar(100) NOT NULL,
74 created_by varchar(100) NOT NULL,
75 approved_by varchar(100) DEFAULT NULL,
76 deleted_by varchar(100) DEFAULT NULL,
77 UNIQUE INDEX unique_index (virtual_corpus_id,user_group_id),
margarethaf6d5a822017-10-19 19:51:20 +020078 INDEX status_index(status),
margaretha1f106f62017-10-18 22:27:30 +020079 FOREIGN KEY (user_group_id)
80 REFERENCES user_group (id)
81 ON DELETE CASCADE,
82 FOREIGN KEY (virtual_corpus_id)
83 REFERENCES virtual_corpus (id)
84 ON DELETE CASCADE
85);