-
Notifications
You must be signed in to change notification settings - Fork 0
/
mysql-schema.sql
408 lines (408 loc) · 12 KB
/
mysql-schema.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
SET FOREIGN_KEY_CHECKS=0;
-- query --
DROP TABLE IF EXISTS roles CASCADE;
-- query --
CREATE TABLE roles
(
id integer NOT NULL auto_increment,
name character varying(100) NOT NULL,
description text NOT NULL,
users_total integer NOT NULL DEFAULT 0,
CONSTRAINT roles_pkey PRIMARY KEY (id)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS site_objects CASCADE;
-- query --
CREATE TABLE site_objects
(
id integer NOT NULL auto_increment,
title character varying(160),
description text,
tags text,
type smallint NOT NULL DEFAULT 0,
views integer DEFAULT 0,
status boolean NOT NULL DEFAULT false,
creation_time timestamp NOT NULL DEFAULT now(),
edition_time timestamp,
pages_total smallint NOT NULL DEFAULT 0,
topics_total integer NOT NULL DEFAULT 0,
posts_total integer NOT NULL DEFAULT 0,
images_total integer NOT NULL DEFAULT 0,
products_total integer NOT NULL DEFAULT 0,
files_total integer NOT NULL DEFAULT 0,
main_menu boolean NOT NULL DEFAULT false,
support_menu boolean NOT NULL DEFAULT false,
list_child_objects boolean NOT NULL DEFAULT false,
allow_delete boolean NOT NULL DEFAULT true,
publish_start timestamp,
publish_end timestamp,
lft integer,
rgt integer,
comments_total integer NOT NULL DEFAULT 0,
CONSTRAINT objects_pkey PRIMARY KEY (id)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
CREATE INDEX creation_date
ON site_objects
(creation_time);
-- query --
CREATE INDEX object_status
ON site_objects
(status);
-- query --
CREATE INDEX object_title
ON site_objects
(title);
-- query --
CREATE INDEX publishing_dates
ON site_objects
(publish_start, publish_end);
-- query --
DROP TABLE IF EXISTS site_objects_tree CASCADE;
-- query --
DROP TABLE IF EXISTS users;
-- query --
CREATE TABLE users
(
id integer NOT NULL auto_increment,
username character varying(50) NOT NULL,
password character varying(32),
status smallint NOT NULL DEFAULT 0,
email character varying(100) NOT NULL,
registered_timestamp timestamp NOT NULL DEFAULT now(),
last_logged_timestamp timestamp,
last_logged_ip character varying(50),
registered_ip character varying(50),
notes text,
ident bigint,
avatar boolean NOT NULL DEFAULT false,
gender_is_male boolean NOT NULL DEFAULT true,
show_gender boolean NOT NULL DEFAULT true,
birthday_date date,
show_age integer NOT NULL DEFAULT 3,
warnings integer DEFAULT 0,
pm_read_total integer NOT NULL DEFAULT 0,
pm_new_total integer NOT NULL DEFAULT 0,
pm_sent_total integer NOT NULL DEFAULT 0,
pm_sketches_total integer NOT NULL DEFAULT 0,
friends_total integer NOT NULL DEFAULT 0,
signature text,
config_topics_per_page integer NOT NULL DEFAULT 20,
config_posts_per_page integer NOT NULL DEFAULT 10,
config_add_signature boolean NOT NULL DEFAULT true,
config_bookmark_topics boolean NOT NULL DEFAULT true,
address character varying(255),
tax_number character varying(30),
city character varying(100),
country character varying(10),
district character varying(10),
salutation character varying(10),
company_title character varying(50),
company_department character varying(50),
assistant_name character varying(50),
assistant_phone character varying(30),
email_notifications boolean,
do_not_call boolean NOT NULL DEFAULT false,
supervisor_id integer,
postal_number character varying(20),
CONSTRAINT users_pkey PRIMARY KEY (id)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
CREATE UNIQUE INDEX unique_email
ON users
(email);
-- query --
CREATE UNIQUE INDEX unique_username
ON users
(username);
-- query --
CREATE INDEX user_birthday
ON users
(birthday_date);
-- query --
CREATE INDEX user_gender
ON users
(gender_is_male);
-- query --
CREATE INDEX user_status
ON users
(status);
-- query --
CREATE INDEX user_warnings
ON users
(warnings);
-- query --
DROP TABLE IF EXISTS acl CASCADE;
-- query --
CREATE TABLE acl
(
object integer NOT NULL DEFAULT 0,
permission integer NOT NULL DEFAULT 0,
role integer NOT NULL DEFAULT 0,
CONSTRAINT acl_pkey PRIMARY KEY (object, permission, role),
CONSTRAINT acl_role_fkey FOREIGN KEY (role)
REFERENCES roles (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS clients CASCADE;
-- query --
CREATE TABLE clients
(
id integer NOT NULL auto_increment,
name character varying(255) NOT NULL,
website character varying(255),
market_symbol character varying(10),
employees integer NOT NULL DEFAULT 0,
owner character varying(255),
type smallint,
trade smallint,
creation_time timestamp NOT NULL DEFAULT now(),
update_time timestamp,
phone1 character varying(20),
fax1 character varying(20),
phone2 character varying(20),
fax2 character varying(20),
email1 character varying(50),
email2 character varying(50),
evaluation character varying(30),
yearly_income integer,
permission_to_send_mail boolean,
notifications_to_client boolean,
description text,
invoice_address character varying(255),
invoice_pobox character varying(255),
invoice_city character varying(255),
invoice_district character varying(100),
invoice_postal_number character varying(30),
invoice_country character varying(50),
sending_address character varying(255),
sending_pobox character varying(255),
sending_city character varying(255),
sending_district character varying(100),
sending_postal_number character varying(30),
sending_country character varying(50),
CONSTRAINT clients_pkey PRIMARY KEY (id)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
CREATE INDEX clients_name
ON clients
(name);
-- query --
DROP TABLE IF EXISTS clients_users_bindings CASCADE;
-- query --
CREATE TABLE clients_users_bindings
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS document_files CASCADE;
-- query --
CREATE TABLE document_files
(
object integer NOT NULL DEFAULT 0,
filename character varying(100) NOT NULL,
title character varying(150) NOT NULL,
description text,
downloads integer NOT NULL DEFAULT 0,
private boolean NOT NULL DEFAULT true,
sort integer NOT NULL DEFAULT 0,
id serial NOT NULL,
CONSTRAINT document_files_pkey PRIMARY KEY (id),
CONSTRAINT document_files_object_fkey FOREIGN KEY (object)
REFERENCES site_objects (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
CREATE INDEX object_idx2
ON document_files
(object);
-- query --
DROP TABLE IF EXISTS document_pages CASCADE;
-- query --
CREATE TABLE document_pages
(
object integer NOT NULL DEFAULT 0,
title text,
description text,
body text,
sort integer NOT NULL DEFAULT 0,
views integer NOT NULL DEFAULT 0,
created timestamp NOT NULL DEFAULT now(),
modified timestamp,
id serial NOT NULL,
CONSTRAINT document_pages_pkey PRIMARY KEY (id),
CONSTRAINT document_pages_object_fkey FOREIGN KEY (object)
REFERENCES site_objects (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
CREATE INDEX page_object_sorting_index
ON document_pages
(object, sort);
-- query --
DROP TABLE IF EXISTS gallery_images CASCADE;
-- query --
CREATE TABLE gallery_images
(
id integer NOT NULL auto_increment,
title character varying(255),
description text,
votes integer NOT NULL DEFAULT 0,
tags character varying(255),
picture_path text,
owner integer NOT NULL DEFAULT 0,
comments integer NOT NULL DEFAULT 0,
object integer NOT NULL DEFAULT 0,
creation_date timestamp NOT NULL DEFAULT now(),
CONSTRAINT gallery_images_pkey PRIMARY KEY (id)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
CREATE INDEX image_insert_time
ON gallery_images
(creation_date);
-- query --
CREATE INDEX image_onwer
ON gallery_images
(owner);
-- query --
CREATE INDEX image_title
ON gallery_images
(title);
-- query --
DROP TABLE IF EXISTS garbage_collection_files CASCADE;
-- query --
CREATE TABLE garbage_collection_files
(
file_location text NOT NULL
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS messages CASCADE;
-- query --
CREATE TABLE messages
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS messages_flow CASCADE;
-- query --
CREATE TABLE messages_flow
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS products CASCADE;
-- query --
CREATE TABLE products
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS products_properties CASCADE;
-- query --
CREATE TABLE products_properties
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS products_propery_values CASCADE;
-- query --
CREATE TABLE products_propery_values
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS session CASCADE;
-- query --
CREATE TABLE session
(
id character(32) NOT NULL,
modified integer,
lifetime integer,
data text,
CONSTRAINT session_pkey PRIMARY KEY (id)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS task_asignees CASCADE;
-- query --
CREATE TABLE task_asignees
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS task_steps CASCADE;
-- query --
CREATE TABLE task_steps
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS tasks CASCADE;
-- query --
CREATE TABLE tasks
(
temporary_table character varying(255)
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS user_phones CASCADE;
-- query --
CREATE TABLE user_phones
(
`user` integer NOT NULL DEFAULT 0,
phone character varying(25) NOT NULL,
description character varying(200) NOT NULL,
CONSTRAINT user_phones_pkey PRIMARY KEY (`user`, phone, description),
CONSTRAINT user_phones_user_fkey FOREIGN KEY (`user`)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS users_ims CASCADE;
-- query --
CREATE TABLE users_ims
(
`user` integer NOT NULL DEFAULT 0,
im character varying(50) NOT NULL,
description character varying(255) NOT NULL,
CONSTRAINT users_ims_pkey PRIMARY KEY (`user`, im, description),
CONSTRAINT users_ims_user_fkey FOREIGN KEY (`user`)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
DROP TABLE IF EXISTS users_roles CASCADE;
-- query --
CREATE TABLE users_roles
(
`user` integer NOT NULL DEFAULT 0,
role integer NOT NULL DEFAULT 0,
CONSTRAINT users_roles_pkey PRIMARY KEY (`user`, role),
CONSTRAINT users_roles_role_fkey FOREIGN KEY (role)
REFERENCES roles (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE,
CONSTRAINT users_roles_user_fkey FOREIGN KEY (`user`)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE InnoDB CHARACTER SET=utf8;
-- query --
SET FOREIGN_KEY_CHECKS=1;
-- query --
INSERT INTO roles (id,name,description,users_total) VALUES(1,'Anonymous','Everyone belongs to this group + anonymous user',0);
-- query --
INSERT INTO roles (id,name,description,users_total) VALUES(2,'Administrators','Administrators',1);
-- query --
INSERT INTO roles (id,name,description,users_total) VALUES(3,'Registered users','Everyone belongs to this group',1);
-- query --
INSERT INTO users (id,username,password,email) VALUES(1,'anonymous','','anonymous');
-- query --
INSERT INTO users (id,username,password,email) VALUES(2,'test',MD5('test'),'[email protected]');
-- query --
INSERT INTO users_roles (user,role) VALUES(1,1);
-- query --
INSERT INTO users_roles (user,role) VALUES(2,2);
-- query --
INSERT INTO site_objects (id,title,lft,rgt)
VALUES(1,'ELECTRONICS',1,20),(2,'TELEVISIONS',2,9),(3,'TUBE',3,4),
(4,'LCD',5,6),(5,'PLASMA',7,8),(6,'PORTABLE ELECTRONICS',10,19),
(7,'MP3 PLAYERS',11,14),(8,'FLASH',12,13),
(9,'CD PLAYERS',15,16),(10,'2 WAY RADIOS',17,18);