| margaretha | d3c0fc9 | 2017-10-25 15:03:32 +0200 | [diff] [blame] | 1 | CREATE TABLE IF NOT EXISTS role ( |
| 2 | id INTEGER PRIMARY KEY AUTO_INCREMENT, |
| 3 | name varchar(100) NOT NULL, |
| margaretha | b42b963 | 2017-10-25 18:34:12 +0200 | [diff] [blame] | 4 | UNIQUE INDEX name_index(name) |
| 5 | ); |
| 6 | |
| 7 | |
| 8 | CREATE 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) |
| margaretha | d3c0fc9 | 2017-10-25 15:03:32 +0200 | [diff] [blame] | 15 | ON DELETE CASCADE |
| 16 | ); |
| 17 | |
| margaretha | b42b963 | 2017-10-25 18:34:12 +0200 | [diff] [blame] | 18 | |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 19 | CREATE 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, |
| margaretha | f6d5a82 | 2017-10-19 19:51:20 +0200 | [diff] [blame] | 23 | created_by varchar(100) NOT NULL, |
| margaretha | bf11d8d | 2017-10-24 19:31:44 +0200 | [diff] [blame] | 24 | deleted_by varchar(100) DEFAULT NULL, |
| margaretha | f6d5a82 | 2017-10-19 19:51:20 +0200 | [diff] [blame] | 25 | INDEX status_index(status) |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 26 | ); |
| 27 | |
| 28 | CREATE 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, |
| margaretha | e6c711b | 2018-02-06 21:55:04 +0100 | [diff] [blame^] | 35 | status_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 36 | UNIQUE INDEX unique_index (user_id,group_id), |
| margaretha | f6d5a82 | 2017-10-19 19:51:20 +0200 | [diff] [blame] | 37 | INDEX status_index(status), |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 38 | FOREIGN KEY (group_id) |
| 39 | REFERENCES user_group (id) |
| 40 | ON DELETE CASCADE |
| 41 | ); |
| 42 | |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 43 | CREATE TABLE IF NOT EXISTS group_member_role ( |
| 44 | id INTEGER PRIMARY KEY AUTO_INCREMENT, |
| 45 | group_member_id int(11) NOT NULL, |
| margaretha | d3c0fc9 | 2017-10-25 15:03:32 +0200 | [diff] [blame] | 46 | role_id int NOT NULL, |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 47 | 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 | |
| 56 | CREATE 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, |
| margaretha | 541b8cc | 2018-01-10 13:02:46 +0100 | [diff] [blame] | 64 | corpus_query varchar(2000) NOT NULL, |
| margaretha | f6d5a82 | 2017-10-19 19:51:20 +0200 | [diff] [blame] | 65 | definition varchar(255) DEFAULT NULL, |
| 66 | INDEX owner_index (created_by), |
| 67 | INDEX type_index (type) |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 68 | ); |
| 69 | |
| 70 | CREATE 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), |
| margaretha | f6d5a82 | 2017-10-19 19:51:20 +0200 | [diff] [blame] | 79 | INDEX status_index(status), |
| margaretha | 1f106f6 | 2017-10-18 22:27:30 +0200 | [diff] [blame] | 80 | 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 | ); |