source: trunk/install/piwigo_structure-sqlite.sql @ 8464

Last change on this file since 8464 was 8464, checked in by plg, 13 years ago

feature 2095 added: new column images.added_by (foreign key on users.id)

File size: 16.0 KB
Line 
1-----------------------------------------------------------------------------
2-- piwigo_caddie
3-----------------------------------------------------------------------------
4
5DROP TABLE IF EXISTS piwigo_caddie;
6CREATE TABLE "piwigo_caddie"
7(
8  "user_id" INTEGER default 0 NOT NULL,
9  "element_id" INTEGER default 0 NOT NULL,
10  PRIMARY KEY ("user_id","element_id")
11);
12
13-----------------------------------------------------------------------------
14-- piwigo_categories
15-----------------------------------------------------------------------------
16
17DROP TABLE IF EXISTS piwigo_categories;
18CREATE TABLE "piwigo_categories"
19(
20  "id" INTEGER NOT NULL,
21  "name" VARCHAR(255) default '' NOT NULL,
22  "id_uppercat" INTEGER,
23  "comment" TEXT,
24  "dir" VARCHAR(255),
25  "rank" INTEGER,
26  "status" VARCHAR(50) default 'public',
27  "site_id" INTEGER default 1,
28  "visible" BOOLEAN default true,
29  "uploadable" BOOLEAN default false,
30  "representative_picture_id" INTEGER,
31  "uppercats" TEXT,
32  "commentable" BOOLEAN default true,
33  "global_rank" VARCHAR(255),
34  "image_order" VARCHAR(128),
35  "permalink" VARCHAR(64),
36  PRIMARY KEY ("id"),
37  CONSTRAINT "categories_i3" UNIQUE ("permalink")
38);
39
40CREATE INDEX "categories_i2" ON "piwigo_categories" ("id_uppercat");
41
42-----------------------------------------------------------------------------
43-- piwigo_config
44-----------------------------------------------------------------------------
45
46DROP TABLE IF EXISTS piwigo_config;
47CREATE TABLE piwigo_config
48(
49  "param" VARCHAR(40) default '' NOT NULL,
50  "value" TEXT,
51  "comment" VARCHAR(255),
52  PRIMARY KEY ("param")
53);
54
55-----------------------------------------------------------------------------
56-- piwigo_favorites
57-----------------------------------------------------------------------------
58
59DROP TABLE IF EXISTS piwigo_favorites;
60CREATE TABLE piwigo_favorites
61(
62  "user_id" INTEGER default 0 NOT NULL,
63  "image_id" INTEGER default 0 NOT NULL,
64  PRIMARY KEY ("user_id","image_id")
65);
66
67
68-----------------------------------------------------------------------------
69-- piwigo_group_access
70-----------------------------------------------------------------------------
71
72DROP TABLE IF EXISTS piwigo_group_access;
73CREATE TABLE piwigo_group_access
74(
75  "group_id" INTEGER default 0 NOT NULL,
76  "cat_id" INTEGER default 0 NOT NULL,
77  PRIMARY KEY ("group_id","cat_id")
78);
79
80-----------------------------------------------------------------------------
81-- piwigo_groups
82-----------------------------------------------------------------------------
83
84DROP TABLE IF EXISTS piwigo_groups;
85CREATE TABLE piwigo_groups
86(
87  "id" INTEGER NOT NULL,
88  "name" VARCHAR(255) default '' NOT NULL,
89  "is_default" BOOLEAN default false,
90  PRIMARY KEY ("id"),
91  CONSTRAINT "groups_ui1" UNIQUE ("name")
92);
93
94-----------------------------------------------------------------------------
95-- piwigo_history
96-----------------------------------------------------------------------------
97
98DROP TABLE IF EXISTS piwigo_history;
99CREATE TABLE piwigo_history
100(
101  "id" INTEGER NOT NULL,
102  "date" DATE NOT NULL,
103  "time" TIME NOT NULL,
104  "user_id" INTEGER default 0 NOT NULL,
105  "ip" VARCHAR(15) default '' NOT NULL,
106  "section" VARCHAR(50) default NULL,
107  "category_id" INTEGER,
108  "tag_ids" VARCHAR(50),
109  "image_id" INTEGER,
110  "summarized" BOOLEAN default false,
111  "image_type" VARCHAR(50) default NULL,
112  PRIMARY KEY ("id")
113);
114
115
116CREATE INDEX "history_i1" ON "piwigo_history" ("summarized");
117
118-----------------------------------------------------------------------------
119-- piwigo_history_summary
120-----------------------------------------------------------------------------
121
122DROP TABLE IF EXISTS piwigo_history_summary;
123CREATE TABLE piwigo_history_summary
124(
125  "year" INTEGER default 0 NOT NULL,
126  "month" INTEGER,
127  "day" INTEGER,
128  "hour" INTEGER,
129  "nb_pages" INTEGER,
130  "id" INTEGER NOT NULL,
131  PRIMARY KEY ("id"),
132  CONSTRAINT "history_summary_ymdh" UNIQUE ("year","month","day","hour")
133);
134
135-----------------------------------------------------------------------------
136-- piwigo_image_category
137-----------------------------------------------------------------------------
138
139DROP TABLE IF EXISTS piwigo_image_category;
140CREATE TABLE piwigo_image_category
141(
142  "image_id" INTEGER default 0 NOT NULL,
143  "category_id" INTEGER default 0 NOT NULL,
144  "rank" INTEGER,
145  PRIMARY KEY ("image_id","category_id")
146);
147
148
149CREATE INDEX "image_category_i1" ON "piwigo_image_category" ("category_id");
150
151-----------------------------------------------------------------------------
152-- piwigo_image_tag
153-----------------------------------------------------------------------------
154
155DROP TABLE IF EXISTS piwigo_image_tag;
156CREATE TABLE piwigo_image_tag
157(
158  "image_id" INTEGER default 0 NOT NULL,
159  "tag_id" INTEGER default 0 NOT NULL,
160  PRIMARY KEY ("image_id","tag_id")
161);
162
163
164CREATE INDEX "image_tag_i1" ON "piwigo_image_tag" ("tag_id");
165
166-----------------------------------------------------------------------------
167-- piwigo_images
168-----------------------------------------------------------------------------
169
170DROP TABLE IF EXISTS piwigo_images;
171CREATE TABLE piwigo_images
172(
173  "id" INTEGER NOT NULL,
174  "file" VARCHAR(255) default '' NOT NULL,
175  "date_available" TIMESTAMP NOT NULL,
176  "date_creation" TIMESTAMP,
177  "tn_ext" VARCHAR(4) default '',
178  "name" VARCHAR(255),
179  "comment" TEXT,
180  "author" VARCHAR(255),
181  "hit" INTEGER default 0 NOT NULL,
182  "filesize" INTEGER,
183  "width" INTEGER,
184  "height" INTEGER,
185  "representative_ext" VARCHAR(4),
186  "date_metadata_update" DATE,
187  "average_rate" FLOAT,
188  "has_high" BOOLEAN default false,
189  "path" VARCHAR(255) default '' NOT NULL,
190  "storage_category_id" INTEGER,
191  "high_filesize" INTEGER,
192  "level" INTEGER default 0 NOT NULL,
193  "md5sum" CHAR(32),
194  "added_by" INTEGER default 0 NOT NULL,
195  PRIMARY KEY ("id")
196);
197
198
199CREATE INDEX "images_i2" ON "piwigo_images" ("date_available");
200
201CREATE INDEX "images_i3" ON "piwigo_images" ("average_rate");
202
203CREATE INDEX "images_i4" ON "piwigo_images" ("hit");
204
205CREATE INDEX "images_i5" ON "piwigo_images" ("date_creation");
206
207CREATE INDEX "images_i1" ON "piwigo_images" ("storage_category_id");
208
209-----------------------------------------------------------------------------
210-- Table structure for table `piwigo_languages`
211-----------------------------------------------------------------------------
212
213DROP TABLE IF EXISTS piwigo_languages;
214CREATE TABLE piwigo_languages
215(
216  "id" varchar(64) NOT NULL default '',
217  "version" varchar(64) NOT NULL default '0',
218  "name" varchar(64) default NULL,
219  PRIMARY KEY  ("id")
220);
221
222-----------------------------------------------------------------------------
223-- piwigo_old_permalinks
224-----------------------------------------------------------------------------
225
226DROP TABLE IF EXISTS piwigo_old_permalinks;
227CREATE TABLE piwigo_old_permalinks
228(
229  "cat_id" INTEGER default 0 NOT NULL,
230  "permalink" VARCHAR(64) default '' NOT NULL,
231  "date_deleted" TIMESTAMP NOT NULL,
232  "last_hit" TIMESTAMP,
233  "hit" INTEGER default 0 NOT NULL,
234  PRIMARY KEY ("permalink")
235);
236
237
238-----------------------------------------------------------------------------
239-- piwigo_plugins
240-----------------------------------------------------------------------------
241
242DROP TABLE IF EXISTS piwigo_plugins;
243CREATE TABLE piwigo_plugins
244(
245  "id" VARCHAR(64) default '' NOT NULL,
246  "state" VARCHAR(50) default 'inactive',
247  "version" VARCHAR(64) default '0' NOT NULL,
248  PRIMARY KEY ("id")
249);
250
251
252-----------------------------------------------------------------------------
253-- piwigo_rate
254-----------------------------------------------------------------------------
255
256DROP TABLE IF EXISTS piwigo_rate;
257CREATE TABLE piwigo_rate
258(
259  "user_id" INTEGER default 0 NOT NULL,
260  "element_id" INTEGER default 0 NOT NULL,
261  "anonymous_id" VARCHAR(45) default '' NOT NULL,
262  "rate" INTEGER default 0 NOT NULL,
263  "date" DATE  NOT NULL,
264  PRIMARY KEY ("user_id","element_id","anonymous_id")
265);
266
267
268-----------------------------------------------------------------------------
269-- piwigo_search
270-----------------------------------------------------------------------------
271
272DROP TABLE IF EXISTS piwigo_search;
273CREATE TABLE piwigo_search
274(
275  "id" INTEGER NOT NULL,
276  "last_seen" DATE,
277  "rules" TEXT,
278  PRIMARY KEY ("id")
279);
280
281
282-----------------------------------------------------------------------------
283-- piwigo_sessions
284-----------------------------------------------------------------------------
285
286DROP TABLE IF EXISTS piwigo_sessions;
287CREATE TABLE piwigo_sessions
288(
289  "id" VARCHAR(255) default '' NOT NULL,
290  "data" TEXT  NOT NULL,
291  "expiration" TIMESTAMP NOT NULL,
292  PRIMARY KEY ("id")
293);
294
295
296-----------------------------------------------------------------------------
297-- piwigo_sites
298-----------------------------------------------------------------------------
299
300DROP TABLE IF EXISTS piwigo_sites;
301CREATE TABLE piwigo_sites
302(
303  "id" INTEGER NOT NULL,
304  "galleries_url" VARCHAR(255) default '' NOT NULL,
305  PRIMARY KEY ("id"),
306  CONSTRAINT "sites_ui1" UNIQUE ("galleries_url")
307);
308
309
310-----------------------------------------------------------------------------
311-- piwigo_stuffs
312-----------------------------------------------------------------------------
313
314DROP TABLE IF EXISTS piwigo_stuffs;
315CREATE TABLE piwigo_stuffs
316(
317  "id" INTEGER  NOT NULL,
318  "pos" INTEGER  NOT NULL,
319  "name" TEXT  NOT NULL,
320  "descr" VARCHAR(255),
321  "type" VARCHAR(255)  NOT NULL,
322  "datas" TEXT,
323  "users" VARCHAR(255),
324  "groups" VARCHAR(255),
325  "show_title" CHAR  NOT NULL,
326  "on_home" CHAR  NOT NULL,
327  "on_cats" CHAR  NOT NULL,
328  "on_picture" CHAR  NOT NULL,
329  "id_line" VARCHAR(1),
330  "width" INTEGER,
331  PRIMARY KEY ("id")
332);
333
334
335CREATE INDEX "on_home" ON "piwigo_stuffs" ("on_home");
336
337CREATE INDEX "on_cats" ON "piwigo_stuffs" ("on_cats");
338
339CREATE INDEX "on_picture" ON "piwigo_stuffs" ("on_picture");
340
341-----------------------------------------------------------------------------
342-- piwigo_tags
343-----------------------------------------------------------------------------
344
345DROP TABLE IF EXISTS piwigo_tags;
346CREATE TABLE piwigo_tags
347(
348  "id" INTEGER NOT NULL,
349  "name" VARCHAR(255) default '' NOT NULL,
350  "url_name" VARCHAR(255) default '' NOT NULL,
351  PRIMARY KEY ("id")
352);
353
354
355CREATE INDEX "tags_i1" ON "piwigo_tags" ("url_name");
356
357-----------------------------------------------------------------------------
358-- piwigo_themes
359-----------------------------------------------------------------------------
360
361DROP TABLE IF EXISTS "piwigo_themes";
362CREATE TABLE "piwigo_themes"
363(
364  "id" varchar(64) default '' NOT NULL,
365  "version" varchar(64) NOT NULL default '0',
366  "name" varchar(64) default NULL,
367  PRIMARY KEY  ("id")
368);
369
370-----------------------------------------------------------------------------
371-- piwigo_upgrade
372-----------------------------------------------------------------------------
373
374DROP TABLE IF EXISTS piwigo_upgrade;
375CREATE TABLE piwigo_upgrade
376(
377  "id" VARCHAR(20) default '' NOT NULL,
378  "applied" TIMESTAMP NOT NULL,
379  "description" VARCHAR(255),
380  PRIMARY KEY ("id")
381);
382
383
384-----------------------------------------------------------------------------
385-- piwigo_user_access
386-----------------------------------------------------------------------------
387
388DROP TABLE IF EXISTS piwigo_user_access;
389CREATE TABLE piwigo_user_access
390(
391  "user_id" INTEGER default 0 NOT NULL,
392  "cat_id" INTEGER default 0 NOT NULL,
393  PRIMARY KEY ("user_id","cat_id")
394);
395
396
397-----------------------------------------------------------------------------
398-- piwigo_user_cache
399-----------------------------------------------------------------------------
400
401DROP TABLE IF EXISTS piwigo_user_cache;
402CREATE TABLE piwigo_user_cache
403(
404  "user_id" INTEGER default 0 NOT NULL,
405  "need_update" BOOLEAN default true,
406  "cache_update_time" INTEGER default 0 NOT NULL,
407  "forbidden_categories" TEXT,
408  "nb_total_images" INTEGER,
409  "image_access_type" VARCHAR(50) default 'NOT IN',
410  "image_access_list" TEXT,
411  PRIMARY KEY ("user_id")
412);
413
414
415-----------------------------------------------------------------------------
416-- piwigo_user_cache_categories
417-----------------------------------------------------------------------------
418
419DROP TABLE IF EXISTS piwigo_user_cache_categories;
420CREATE TABLE piwigo_user_cache_categories
421(
422  "user_id" INTEGER default 0 NOT NULL,
423  "cat_id" INTEGER default 0 NOT NULL,
424  "date_last" TIMESTAMP,
425  "max_date_last" TIMESTAMP,
426  "nb_images" INTEGER default 0 NOT NULL,
427  "count_images" INTEGER default 0,
428  "count_categories" INTEGER default 0,
429  PRIMARY KEY ("user_id","cat_id")
430);
431
432
433-----------------------------------------------------------------------------
434-- piwigo_user_feed
435-----------------------------------------------------------------------------
436
437DROP TABLE IF EXISTS piwigo_user_feed;
438CREATE TABLE piwigo_user_feed
439(
440  "id" VARCHAR(50) default '' NOT NULL,
441  "user_id" INTEGER default 0 NOT NULL,
442  "last_check" TIMESTAMP,
443  PRIMARY KEY ("id")
444);
445
446
447-----------------------------------------------------------------------------
448-- piwigo_user_group
449-----------------------------------------------------------------------------
450
451DROP TABLE IF EXISTS piwigo_user_group;
452CREATE TABLE piwigo_user_group
453(
454  "user_id" INTEGER default 0 NOT NULL,
455  "group_id" INTEGER default 0 NOT NULL,
456  PRIMARY KEY ("user_id","group_id")
457);
458
459
460-----------------------------------------------------------------------------
461-- piwigo_user_infos
462-----------------------------------------------------------------------------
463
464DROP TABLE IF EXISTS piwigo_user_infos;
465CREATE TABLE piwigo_user_infos
466(
467  "user_id" INTEGER default 0 NOT NULL,
468  "nb_image_line" INTEGER default 5 NOT NULL,
469  "nb_line_page" INTEGER default 3 NOT NULL,
470  "status" VARCHAR(50) default 'guest',
471  "language" VARCHAR(50) default 'en_UK' NOT NULL,
472  "maxwidth" INTEGER,
473  "maxheight" INTEGER,
474  "expand" BOOLEAN default false,
475  "show_nb_comments" BOOLEAN default false,
476  "show_nb_hits" BOOLEAN default false,
477  "recent_period" INTEGER default 7 NOT NULL,
478  "theme" VARCHAR(255) default 'Sylvia' NOT NULL,
479  "registration_date" TIMESTAMP NOT NULL,
480  "enabled_high" BOOLEAN default true,
481  "level" INTEGER default 0 NOT NULL,
482  PRIMARY KEY ("user_id"),
483  CONSTRAINT "user_infos_ui1" UNIQUE ("user_id")
484);
485
486
487-----------------------------------------------------------------------------
488-- piwigo_user_mail_notification
489-----------------------------------------------------------------------------
490
491DROP TABLE IF EXISTS piwigo_user_mail_notification;
492CREATE TABLE piwigo_user_mail_notification
493(
494  "user_id" INTEGER default 0 NOT NULL,
495  "check_key" VARCHAR(16) default '' NOT NULL,
496  "enabled" BOOLEAN default false,
497  "last_send" TIMESTAMP,
498  PRIMARY KEY ("user_id"),
499  CONSTRAINT "user_mail_notification_ui1" UNIQUE ("check_key")
500);
501
502
503-----------------------------------------------------------------------------
504-- piwigo_users
505-----------------------------------------------------------------------------
506
507DROP TABLE IF EXISTS piwigo_users;
508CREATE TABLE piwigo_users
509(
510  "id" INTEGER NOT NULL,
511  "username" VARCHAR(100) default '' NOT NULL,
512  "password" VARCHAR(32),
513  "mail_address" VARCHAR(255),
514  PRIMARY KEY ("id"),
515  CONSTRAINT "users_ui1" UNIQUE ("username")
516);
517
518
519-----------------------------------------------------------------------------
520-- piwigo_comments
521-----------------------------------------------------------------------------
522
523DROP TABLE IF EXISTS piwigo_comments;
524CREATE TABLE piwigo_comments
525(
526  "id" INTEGER NOT NULL,
527  "image_id" INTEGER default 0 NOT NULL,
528  "date" TIMESTAMP  NOT NULL,
529  "author" VARCHAR(255),
530  "content" TEXT,
531  "validated" BOOLEAN default false,
532  "validation_date" TIMESTAMP,
533  "author_id" INTEGER REFERENCES "piwigo_users" (id),
534  PRIMARY KEY ("id")
535);
536
537CREATE INDEX "comments_i2" ON "piwigo_comments" ("validation_date");
538CREATE INDEX "comments_i1" ON "piwigo_comments" ("image_id");
539
540-----------------------------------------------------------------------------
541-- piwigo_waiting
542-----------------------------------------------------------------------------
543
544DROP TABLE IF EXISTS piwigo_waiting;
545CREATE TABLE piwigo_waiting
546(
547  "id" INTEGER NOT NULL,
548  "storage_category_id" INTEGER default 0 NOT NULL,
549  "file" VARCHAR(255) default '' NOT NULL,
550  "username" VARCHAR(255) default '' NOT NULL,
551  "mail_address" VARCHAR(255) default '' NOT NULL,
552  "date" INTEGER default 0 NOT NULL,
553  "tn_ext" CHAR(3),
554  "validated" BOOLEAN default false,
555  "infos" TEXT,
556  PRIMARY KEY ("id")
557);
558
Note: See TracBrowser for help on using the repository browser.