Dotclear

source: inc/dbschema/db-schema.php @ 3730:5c45a5df9a59

Revision 3730:5c45a5df9a59, 10.5 KB checked in by franck <carnet.franck.paul@…>, 7 years ago (diff)

Code formatting (PSR-2)

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_RC_PATH')) {return;}
13
14if (!($_s instanceof dbStruct)) {
15    throw new Exception('No valid schema object');
16}
17
18/* Tables
19-------------------------------------------------------- */
20$_s->blog
21    ->blog_id('varchar', 32, false)
22    ->blog_uid('varchar', 32, false)
23    ->blog_creadt('timestamp', 0, false, 'now()')
24    ->blog_upddt('timestamp', 0, false, 'now()')
25    ->blog_url('varchar', 255, false)
26    ->blog_name('varchar', 255, false)
27    ->blog_desc('text', 0, true)
28    ->blog_status('smallint', 0, false, 1)
29
30    ->primary('pk_blog', 'blog_id')
31;
32
33$_s->category
34    ->cat_id('bigint', 0, false)
35    ->blog_id('varchar', 32, false)
36    ->cat_title('varchar', 255, false)
37    ->cat_url('varchar', 255, false)
38    ->cat_desc('text', 0, true)
39    ->cat_position('integer', 0, true, 0)
40    ->cat_lft('integer', 0, true)
41    ->cat_rgt('integer', 0, true)
42
43    ->primary('pk_category', 'cat_id')
44
45    ->unique('uk_cat_url', 'cat_url', 'blog_id')
46;
47
48$_s->session
49    ->ses_id('varchar', 40, false)
50    ->ses_time('integer', 0, false, 0)
51    ->ses_start('integer', 0, false, 0)
52    ->ses_value('text', 0, false)
53
54    ->primary('pk_session', 'ses_id')
55;
56
57$_s->setting
58    ->setting_id('varchar', 255, false)
59    ->blog_id('varchar', 32, true)
60    ->setting_ns('varchar', 32, false, "'system'")
61    ->setting_value('text', 0, true, null)
62    ->setting_type('varchar', 8, false, "'string'")
63    ->setting_label('text', 0, true)
64
65    ->unique('uk_setting', 'setting_ns', 'setting_id', 'blog_id')
66;
67
68$_s->user
69    ->user_id('varchar', 32, false)
70    ->user_super('smallint', 0, true)
71    ->user_status('smallint', 0, false, 1)
72    ->user_pwd('varchar', 255, false)
73    ->user_change_pwd('smallint', 0, false, 0)
74    ->user_recover_key('varchar', 32, true, null)
75    ->user_name('varchar', 255, true, null)
76    ->user_firstname('varchar', 255, true, null)
77    ->user_displayname('varchar', 255, true, null)
78    ->user_email('varchar', 255, true, null)
79    ->user_url('varchar', 255, true, null)
80    ->user_desc('text', 0, true)
81    ->user_default_blog('varchar', 32, true, null)
82    ->user_options('text', 0, true)
83    ->user_lang('varchar', 5, true, null)
84    ->user_tz('varchar', 128, false, "'UTC'")
85    ->user_post_status('smallint', 0, false, -2)
86    ->user_creadt('timestamp', 0, false, 'now()')
87    ->user_upddt('timestamp', 0, false, 'now()')
88
89    ->primary('pk_user', 'user_id')
90;
91
92$_s->permissions
93    ->user_id('varchar', 32, false)
94    ->blog_id('varchar', 32, false)
95    ->permissions('text', 0, true)
96
97    ->primary('pk_permissions', 'user_id', 'blog_id')
98;
99
100$_s->post
101    ->post_id('bigint', 0, false)
102    ->blog_id('varchar', 32, false)
103    ->user_id('varchar', 32, false)
104    ->cat_id('bigint', 0, true)
105    ->post_dt('timestamp', 0, false, 'now()')
106    ->post_tz('varchar', 128, false, "'UTC'")
107    ->post_creadt('timestamp', 0, false, 'now()')
108    ->post_upddt('timestamp', 0, false, 'now()')
109    ->post_password('varchar', 32, true, null)
110    ->post_type('varchar', 32, false, "'post'")
111    ->post_format('varchar', 32, false, "'xhtml'")
112    ->post_url('varchar', 255, false)
113    ->post_lang('varchar', 5, true, null)
114    ->post_title('varchar', 255, true, null)
115    ->post_excerpt('text', 0, true, null)
116    ->post_excerpt_xhtml('text', 0, true, null)
117    ->post_content('text', 0, true, null)
118    ->post_content_xhtml('text', 0, false)
119    ->post_notes('text', 0, true, null)
120    ->post_meta('text', 0, true, null)
121    ->post_words('text', 0, true, null)
122    ->post_status('smallint', 0, false, 0)
123    ->post_firstpub('smallint', 0, false, 0)
124    ->post_selected('smallint', 0, false, 0)
125    ->post_position('integer', 0, false, 0)
126    ->post_open_comment('smallint', 0, false, 0)
127    ->post_open_tb('smallint', 0, false, 0)
128    ->nb_comment('integer', 0, false, 0)
129    ->nb_trackback('integer', 0, false, 0)
130
131    ->primary('pk_post', 'post_id')
132
133    ->unique('uk_post_url', 'post_url', 'post_type', 'blog_id')
134;
135
136$_s->media
137    ->media_id('bigint', 0, false)
138    ->user_id('varchar', 32, false)
139    ->media_path('varchar', 255, false)
140    ->media_title('varchar', 255, false)
141    ->media_file('varchar', 255, false)
142    ->media_dir('varchar', 255, false, "'.'")
143    ->media_meta('text', 0, true, null)
144    ->media_dt('timestamp', 0, false, 'now()')
145    ->media_creadt('timestamp', 0, false, 'now()')
146    ->media_upddt('timestamp', 0, false, 'now()')
147    ->media_private('smallint', 0, false, 0)
148
149    ->primary('pk_media', 'media_id')
150;
151
152$_s->post_media
153    ->media_id('bigint', 0, false)
154    ->post_id('bigint', 0, false)
155    ->link_type('varchar', 32, false, "'attachment'")
156
157    ->primary('pk_post_media', 'media_id', 'post_id', 'link_type')
158;
159
160$_s->log
161    ->log_id('bigint', 0, false)
162    ->user_id('varchar', 32, true)
163    ->blog_id('varchar', 32, true)
164    ->log_table('varchar', 255, false)
165    ->log_dt('timestamp', 0, false, 'now()')
166    ->log_ip('varchar', 39, false)
167    ->log_msg('text', 0, true, null)
168
169    ->primary('pk_log', 'log_id')
170;
171
172$_s->version
173    ->module('varchar', 64, false)
174    ->version('varchar', 32, false)
175
176    ->primary('pk_version', 'module')
177;
178
179$_s->ping
180    ->post_id('bigint', 0, false)
181    ->ping_url('varchar', 255, false)
182    ->ping_dt('timestamp', 0, false, 'now()')
183
184    ->primary('pk_ping', 'post_id', 'ping_url')
185;
186
187$_s->comment
188    ->comment_id('bigint', 0, false)
189    ->post_id('bigint', 0, false)
190    ->comment_dt('timestamp', 0, false, 'now()')
191    ->comment_tz('varchar', 128, false, "'UTC'")
192    ->comment_upddt('timestamp', 0, false, 'now()')
193    ->comment_author('varchar', 255, true, null)
194    ->comment_email('varchar', 255, true, null)
195    ->comment_site('varchar', 255, true, null)
196    ->comment_content('text', 0, true)
197    ->comment_words('text', 0, true, null)
198    ->comment_ip('varchar', 39, true, null)
199    ->comment_status('smallint', 0, true, 0)
200    ->comment_spam_status('varchar', 128, true, 0)
201    ->comment_spam_filter('varchar', 32, true, null)
202    ->comment_trackback('smallint', 0, false, 0)
203
204    ->primary('pk_comment', 'comment_id')
205;
206
207$_s->meta
208    ->meta_id('varchar', 255, false)
209    ->meta_type('varchar', 64, false)
210    ->post_id('bigint', 0, false)
211
212    ->primary('pk_meta', 'meta_id', 'meta_type', 'post_id')
213;
214
215$_s->pref
216    ->pref_id('varchar', 255, false)
217    ->user_id('varchar', 32, true)
218    ->pref_ws('varchar', 32, false, "'system'")
219    ->pref_value('text', 0, true, null)
220    ->pref_type('varchar', 8, false, "'string'")
221    ->pref_label('text', 0, true)
222
223    ->unique('uk_pref', 'pref_ws', 'pref_id', 'user_id')
224;
225
226/* References indexes
227-------------------------------------------------------- */
228$_s->category->index('idx_category_blog_id', 'btree', 'blog_id');
229$_s->category->index('idx_category_cat_lft_blog_id', 'btree', 'blog_id', 'cat_lft');
230$_s->category->index('idx_category_cat_rgt_blog_id', 'btree', 'blog_id', 'cat_rgt');
231$_s->setting->index('idx_setting_blog_id', 'btree', 'blog_id');
232$_s->user->index('idx_user_user_default_blog', 'btree', 'user_default_blog');
233$_s->permissions->index('idx_permissions_blog_id', 'btree', 'blog_id');
234$_s->post->index('idx_post_cat_id', 'btree', 'cat_id');
235$_s->post->index('idx_post_user_id', 'btree', 'user_id');
236$_s->post->index('idx_post_blog_id', 'btree', 'blog_id');
237$_s->media->index('idx_media_user_id', 'btree', 'user_id');
238$_s->post_media->index('idx_post_media_post_id', 'btree', 'post_id');
239$_s->post_media->index('idx_post_media_media_id', 'btree', 'media_id');
240$_s->log->index('idx_log_user_id', 'btree', 'user_id');
241$_s->comment->index('idx_comment_post_id', 'btree', 'post_id');
242$_s->meta->index('idx_meta_post_id', 'btree', 'post_id');
243$_s->meta->index('idx_meta_meta_type', 'btree', 'meta_type');
244$_s->pref->index('idx_pref_user_id', 'btree', 'user_id');
245
246/* Performance indexes
247-------------------------------------------------------- */
248$_s->comment->index('idx_comment_post_id_dt_status', 'btree', 'post_id', 'comment_dt', 'comment_status');
249$_s->post->index('idx_post_post_dt', 'btree', 'post_dt');
250$_s->post->index('idx_post_post_dt_post_id', 'btree', 'post_dt', 'post_id');
251$_s->post->index('idx_blog_post_post_dt_post_id', 'btree', 'blog_id', 'post_dt', 'post_id');
252$_s->post->index('idx_blog_post_post_status', 'btree', 'blog_id', 'post_status');
253$_s->blog->index('idx_blog_blog_upddt', 'btree', 'blog_upddt');
254$_s->user->index('idx_user_user_super', 'btree', 'user_super');
255
256/* Foreign keys
257-------------------------------------------------------- */
258$_s->category->reference('fk_category_blog', 'blog_id', 'blog', 'blog_id', 'cascade', 'cascade');
259$_s->setting->reference('fk_setting_blog', 'blog_id', 'blog', 'blog_id', 'cascade', 'cascade');
260$_s->user->reference('fk_user_default_blog', 'user_default_blog', 'blog', 'blog_id', 'cascade', 'set null');
261$_s->permissions->reference('fk_permissions_blog', 'blog_id', 'blog', 'blog_id', 'cascade', 'cascade');
262$_s->permissions->reference('fk_permissions_user', 'user_id', 'user', 'user_id', 'cascade', 'cascade');
263$_s->post->reference('fk_post_category', 'cat_id', 'category', 'cat_id', 'cascade', 'set null');
264$_s->post->reference('fk_post_user', 'user_id', 'user', 'user_id', 'cascade', 'cascade');
265$_s->post->reference('fk_post_blog', 'blog_id', 'blog', 'blog_id', 'cascade', 'cascade');
266$_s->media->reference('fk_media_user', 'user_id', 'user', 'user_id', 'cascade', 'cascade');
267$_s->post_media->reference('fk_media', 'media_id', 'media', 'media_id', 'cascade', 'cascade');
268$_s->post_media->reference('fk_media_post', 'post_id', 'post', 'post_id', 'cascade', 'cascade');
269$_s->ping->reference('fk_ping_post', 'post_id', 'post', 'post_id', 'cascade', 'cascade');
270$_s->comment->reference('fk_comment_post', 'post_id', 'post', 'post_id', 'cascade', 'cascade');
271$_s->log->reference('fk_log_blog', 'blog_id', 'blog', 'blog_id', 'cascade', 'set null');
272$_s->meta->reference('fk_meta_post', 'post_id', 'post', 'post_id', 'cascade', 'cascade');
273$_s->pref->reference('fk_pref_user', 'user_id', 'user', 'user_id', 'cascade', 'cascade');
274
275/* PostgreSQL specific indexes
276-------------------------------------------------------- */
277if ($_s->driver() == 'pgsql') {
278    $_s->setting->index('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)');
279    $_s->media->index('idx_media_media_path', 'btree', 'media_path', 'media_dir');
280    $_s->pref->index('idx_pref_user_id_null', 'btree', '(user_id IS NULL)');
281}
Note: See TracBrowser for help on using the repository browser.

Sites map