blob: 1fe0f26a089a6d1cf3da816755904102a9f4f624 [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,
margarethae6c711b2018-02-06 21:55:04 +010035 status_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
margaretha1f106f62017-10-18 22:27:30 +020036 UNIQUE INDEX unique_index (user_id,group_id),
margarethaf6d5a822017-10-19 19:51:20 +020037 INDEX status_index(status),
margaretha1f106f62017-10-18 22:27:30 +020038 FOREIGN KEY (group_id)
39 REFERENCES user_group (id)
40 ON DELETE CASCADE
41);
42
margaretha1f106f62017-10-18 22:27:30 +020043CREATE TABLE IF NOT EXISTS group_member_role (
44 id INTEGER PRIMARY KEY AUTO_INCREMENT,
45 group_member_id int(11) NOT NULL,
margarethad3c0fc92017-10-25 15:03:32 +020046 role_id int NOT NULL,
margaretha1f106f62017-10-18 22:27:30 +020047 UNIQUE INDEX unique_index (group_member_id,role_id),
48 FOREIGN KEY (group_member_id)
49 REFERENCES user_group_member (id)
50 ON DELETE CASCADE,
51 FOREIGN KEY (role_id)
52 REFERENCES role (id)
53 ON DELETE CASCADE
54);
55
56CREATE TABLE IF NOT EXISTS virtual_corpus (
57 id INTEGER PRIMARY KEY AUTO_INCREMENT,
58 name varchar(255) NOT NULL,
59 type varchar(100) NOT NULL,
60 required_access varchar(100) NOT NULL,
61 created_by varchar(100) NOT NULL,
62 description varchar(255) DEFAULT NULL,
63 status varchar(100) DEFAULT NULL,
margaretha541b8cc2018-01-10 13:02:46 +010064 corpus_query varchar(2000) NOT NULL,
margarethaf6d5a822017-10-19 19:51:20 +020065 definition varchar(255) DEFAULT NULL,
66 INDEX owner_index (created_by),
67 INDEX type_index (type)
margaretha1f106f62017-10-18 22:27:30 +020068);
69
70CREATE TABLE IF NOT EXISTS virtual_corpus_access (
71 id INTEGER PRIMARY KEY AUTO_INCREMENT,
72 virtual_corpus_id int(11) NOT NULL,
73 user_group_id int(11) NOT NULL,
74 status varchar(100) NOT NULL,
75 created_by varchar(100) NOT NULL,
76 approved_by varchar(100) DEFAULT NULL,
77 deleted_by varchar(100) DEFAULT NULL,
78 UNIQUE INDEX unique_index (virtual_corpus_id,user_group_id),
margarethaf6d5a822017-10-19 19:51:20 +020079 INDEX status_index(status),
margaretha1f106f62017-10-18 22:27:30 +020080 FOREIGN KEY (user_group_id)
81 REFERENCES user_group (id)
82 ON DELETE CASCADE,
83 FOREIGN KEY (virtual_corpus_id)
84 REFERENCES virtual_corpus (id)
85 ON DELETE CASCADE
86);