blob: 3bff5cc4cb8b0c8b60413da1afa5f2847b43a258 [file] [log] [blame]
Michael Hanl19390652016-01-16 11:01:24 +01001--
2---- rename all columns in new way!
3--CREATE TABLE IF NOT EXISTS korapusers (
4-- id INTEGER PRIMARY KEY AUTO_INCREMENT,
5-- username VARCHAR(100) NOT NULL UNIQUE,
6-- password VARCHAR(100) NOT NULL,
7-- accountLock boolean NOT NULL,
8-- accountCreation TIMESTAMP NOT NULL,
9-- type INTEGER DEFAULT 0,
10-- URI_PASS_Fragment VARCHAR(100),
11-- URI_CONF_Fragment VARCHAR(100),
12-- URI_Expiration TIMESTAMP,
13-- loginSuccess INTEGER,
14-- loginFailed INTEGER,
15-- accountExpiration TIMESTAMP NOT NULL,
16-- accountLink VARCHAR(100)
17--);
18--
19--CREATE TABLE IF NOT EXISTS shibusers (
20-- id INTEGER PRIMARY KEY AUTO_INCREMENT,
21-- username VARCHAR(100) NOT NULL UNIQUE,
22-- accountCreation TIMESTAMP NOT NULL,
23-- type INTEGER DEFAULT 1,
24-- loginSuccess INTEGER,
25-- loginFailed INTEGER,
26-- accountExpiration TIMESTAMP NOT NULL,
27-- accountLink VARCHAR(100)
28--);
29--
30--CREATE TABLE IF NOT EXISTS udetails (
31-- Id INTEGER PRIMARY KEY AUTO_INCREMENT,
32-- userID INTEGER NOT NULL UNIQUE,
33-- firstName VARCHAR(100),
34-- lastName VARCHAR(100),
35-- gender VARCHAR(100),
36-- phone VARCHAR(100),
37-- institution VARCHAR(100),
38-- email VARCHAR(100),
39-- address VARCHAR(100),
40-- country VARCHAR(100),
41-- privateUsage BOOLEAN,
42-- foreign key (userID)
43-- references korapusers (id)
44-- on delete cascade
45--);
46--
47--CREATE TABLE IF NOT EXISTS usettings (
48-- Id INTEGER PRIMARY KEY AUTO_INCREMENT,
49-- userID INTEGER NOT NULL UNIQUE,
50-- fileNameForExport VARCHAR(100),
51-- itemForSimpleAnnotation INTEGER,
52-- leftContextItemForExport VARCHAR(100),
53-- leftContextSizeForExport INTEGER,
54-- locale VARCHAR(100),
55-- leftContextItem VARCHAR(100),
56-- leftContextSize INTEGER,
57-- rightContextItem VARCHAR(100),
58-- rightContextItemForExport VARCHAR(100),
59-- rightContextSize INTEGER,
60-- rightContextSizeForExport INTEGER,
61-- selectedCollection VARCHAR(100),
62-- queryLanguage VARCHAR(100),
63-- pageLength INTEGER,
64-- metadataQueryExpertModus BOOLEAN,
65-- searchSettingsTab INTEGER,
66-- selectedGraphType INTEGER,
67-- selectedSortType VARCHAR(100),
68-- selectedViewForSearchResults VARCHAR(100),
69-- POSFoundry VARCHAR(100),
70-- lemmaFoundry VARCHAR(100),
71-- constFoundry VARCHAR(100),
72-- relFoundry VARCHAR(100),
73-- collectData BOOLEAN,
74-- foreign key (userID)
75-- references korapusers (id)
76-- on delete cascade
77--);
78--
79--CREATE OR REPLACE VIEW allusers AS
80-- SELECT
81-- id,
82-- username,
83-- password,
84-- accountLock,
85-- accountCreation,
86-- type,
87-- URI_PASS_Fragment,
88-- URI_CONF_Fragment,
89-- URI_Expiration,
90-- loginSuccess,
91-- loginFailed,
92-- accountExpiration,
93-- accountLink
94-- from
95-- korapusers
96-- UNION ALL SELECT
97-- id,
98-- username,
99-- NULL as password,
100-- NULL as accountLock,
101-- accountCreation,
102-- type,
103-- NULL as URI_PASS_Fragment,
104-- NULL as URI_CONF_Fragment,
105-- NULL as URI_Expiration,
106-- loginSuccess,
107-- loginFailed,
108-- accountExpiration,
109-- accountLink
110-- from
111-- shibusers;
112
113---- why unsigned?
114--CREATE TABLE IF NOT EXISTS r_store (
115--id INTEGER PRIMARY KEY AUTO_INCREMENT,
116--persistent_id VARCHAR(100) NOT NULL UNIQUE,
117--name VARCHAR(100),
118--description VARCHAR(300),
119--parent_id Integer unsigned null,
120--created timestamp default current_timestamp,
121--type INTEGER NOT NULL,
122--creator INTEGER NOT NULL
123--);
124--
125--CREATE TABLE IF NOT EXISTS uqueries (
126-- id INTEGER PRIMARY KEY,
127-- queryLanguage VARCHAR(100),
128-- name VARCHAR(100),
129-- query VARCHAR(200),
130-- description VARCHAR(150),
131-- foreign key (id)
132-- references r_store(id)
133-- on delete cascade
134--);
135
136CREATE TABLE IF NOT EXISTS r_tree (
137parent_id INTEGER,
138child_id INTEGER,
139depth INTEGER,
140name_path VARCHAR(250),
141PRIMARY KEY (parent_id , child_id),
142foreign key (parent_id)
143references r_store (id)
144on delete cascade,
145foreign key (child_id)
146references r_store (id)
147on delete cascade
148);
149
150
151CREATE TABLE IF NOT EXISTS cstorage (
152 id INTEGER,
153 refCorpus VARCHAR(100),
154 query VARCHAR(500),
155 -- is foreign key constraint valid after refactoring?
156 foreign key (id) references r_store(id)
157 on delete cascade);
158
159
160CREATE TABLE IF NOT EXISTS matchInfo (id INTEGER PRIMARY KEY AUTO_INCREMENT, userid BIGINT NOT NULL,
161matchInfo VARCHAR(100));
162
163CREATE TABLE IF NOT EXISTS resourceRecords (
164 AUD_ID INTEGER PRIMARY KEY AUTO_INCREMENT,
165 AUD_RESOURCE VARCHAR(100),
166 AUD_USER VARCHAR(100),
167 AUD_LOC VARCHAR(100),
168 AUD_OP VARCHAR(100),
169 AUD_TIMESTAMP TIMESTAMP,
170 AUD_FAILURE VARCHAR(100)
171);
172
173CREATE TABLE IF NOT EXISTS databaseRecords (
174 AUD_ID INTEGER PRIMARY KEY AUTO_INCREMENT,
175 AUD_TARGET VARCHAR(100),
176 AUD_USER VARCHAR(100),
177 AUD_LOC VARCHAR(100),
178 AUD_OP VARCHAR(100),
179 AUD_TIMESTAMP TIMESTAMP,
180 AUD_FAILURE VARCHAR(100)
181);
182
183CREATE TABLE IF NOT EXISTS securityRecords (
184 AUD_ID INTEGER PRIMARY KEY AUTO_INCREMENT,
185 AUD_USER VARCHAR(100),
186 AUD_LOC VARCHAR(100),
187 AUD_OP VARCHAR(100),
188 AUD_TIMESTAMP TIMESTAMP,
189 AUD_FAILURE VARCHAR(100)
190);
191
192
193--CREATE TABLE IF NOT EXISTS doc_store (
194-- id INTEGER PRIMARY KEY AUTO_INCREMENT,
195-- persistent_id VARCHAR(100) UNIQUE,
196-- created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
197-- disabled BOOLEAN default true
198--);
199
200-- last_modified timestamp ON UPDATE CURRENT_TIMESTAMP,
201CREATE TABLE IF NOT EXISTS p_store (
202 id INTEGER PRIMARY KEY AUTO_INCREMENT,
203 target_id BIGINT NOT NULL,
204 created TIMESTAMP,
205 creator INTEGER NOT NULL,
206 posix SMALLINT NOT NULL,
207 expire TIMESTAMP NULL,
208 enable TIMESTAMP NULL,
209 iprange VARCHAR(200)
210);
211
212CREATE TABLE IF NOT EXISTS conditionDef (
213 id INTEGER PRIMARY KEY AUTO_INCREMENT,
214 groupRef VARCHAR(100) NOT NULL,
215 policyid INTEGER NOT NULL
216);
217
218
219CREATE TABLE IF NOT EXISTS groupStore (
220 name VARCHAR(100) PRIMARY KEY,
221 description VARCHAR(200),
222 sym_use INTEGER DEFAULT -1,
223 export VARCHAR(30) DEFAULT NULL,
224 query_only VARCHAR(30) DEFAULT NULL,
225 licence INTEGER DEFAULT -1,
226 -- basically every resource we have is an academic resource, thus a non-commercial use is infered!
227 commercial BOOLEAN DEFAULT FALSE
228);
229
230CREATE TABLE IF NOT EXISTS groupUsers (
231 id INTEGER PRIMARY KEY AUTO_INCREMENT,
232 userID BIGINT NOT NULL,
233 groupRef VARCHAR(100) NOT NULL,
234 admin BOOLEAN NOT NULL DEFAULT FALSE,
235 FOREIGN KEY (groupRef)
236 REFERENCES groupStore (name) on delete cascade
237);
238
239CREATE TABLE IF NOT EXISTS paramStore (
240 id INTEGER PRIMARY KEY AUTO_INCREMENT,
241 p_key VARCHAR(100) NOT NULL,
242 p_value VARCHAR(150) NOT NULL,
243 resource INTEGER DEFAULT -1,
244 pid INTEGER DEFAULT -1,
245 FOREIGN KEY (resource)
246 REFERENCES r_store(id)
247 on delete cascade,
248 FOREIGN KEY (pid)
249 REFERENCES p_store(id)
250 on delete cascade
251);
252
253CREATE TABLE IF NOT EXISTS paramMapping (
254 id INTEGER PRIMARY KEY AUTO_INCREMENT,
255 policyID INTEGER NOT NULL,
256 paramID INTEGER NOT NULL,
257 value VARCHAR(100) NOT NULL,
258 flag BOOLEAN NOT NULL DEFAULT FALSE,
259 FOREIGN KEY (paramID)
260 REFERENCES paramStore (id),
261 FOREIGN KEY (policyID)
262 REFERENCES p_store (id)
263);
264
265create or replace view p_view as
266select
267 po.id as pid,
268 po.target_id as id,
269 rs.persistent_id as persistent_id,
270 rs.name as name,
271 rs.type as type,
272 c.groupref as groupref,
273 po.posix as perm,
274 po.creator as creator,
275 po.expire as expire,
276 po.enable as enable,
277 po.iprange as iprange
278from
279p_store as po
280inner join
281conditionDef as c ON c.policyid = po.id
282inner join
283r_store as rs ON rs.id = po.target_id
284union all select
285 - 1 as pid,
286 rs.id as id,
287 rs.persistent_id as persistent_id,
288 rs.name as name,
289 type as type,
290 'self' as groupref,
291 127 as perm,
292 creator,
293 NULL as expire,
294 rs.created as enable,
295 null as iprange
296 from
297 r_store as rs;
298
299
300-- indices
301create trigger delete_policy after delete on r_store
302for each row delete from p_store where target_id=OLD.id;
303
304DELIMITER //
305CREATE TRIGGER tree_entry_insert AFTER INSERT ON r_store FOR EACH ROW BEGIN
306 INSERT INTO r_tree (parent_id, child_id, depth, name_path)
307 VALUES (NEW.id, NEW.id, 0, NEW.name);
308 INSERT INTO r_tree (parent_id, child_id, depth, name_path)
309 SELECT parent_id, NEW.id, rt.depth + 1, concat(name_path,"/",NEW.name) FROM r_tree WHERE child_id = NEW.parent_id;
310END; //
311
312DELIMITER ;
313
314-- todo: are this automatically adapted when refactoring?
315CREATE INDEX group_index ON groupUsers(userid);
316CREATE INDEX policy_index ON conditionDef(policyid);
317CREATE UNIQUE INDEX r_tree_index ON r_tree (parent_id, depth, child_id);
318CREATE UNIQUE INDEX para_unique ON paramStore (p_key, p_value);
319
320-- foreign key constraints
321
322
323
324
325
326