Dotclear

source: inc/dbschema/db-schema.php @ 2566:9bf417837888

Revision 2566:9bf417837888, 10.2 KB checked in by franck <carnet.franck.paul@…>, 12 years ago (diff)

Add some people in CREDITS, remove trailing spaces and tabs.

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',    40,  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_selected          ('smallint',   0,   false,    0)
124     ->post_position          ('integer',    0,   false,    0)
125     ->post_open_comment      ('smallint',   0,   false,    0)
126     ->post_open_tb           ('smallint',   0,   false,    0)
127     ->nb_comment             ('integer',    0,   false,    0)
128     ->nb_trackback           ('integer',    0,   false,    0)
129
130     ->primary('pk_post','post_id')
131
132     ->unique('uk_post_url','post_url','post_type','blog_id')
133     ;
134
135$_s->media
136     ->media_id          ('bigint',     0,   false)
137     ->user_id           ('varchar',    32,  false)
138     ->media_path        ('varchar',    255, false)
139     ->media_title       ('varchar',    255, false)
140     ->media_file        ('varchar',    255, false)
141     ->media_dir         ('varchar',    255, false,    "'.'")
142     ->media_meta        ('text',       0,   true,     null)
143     ->media_dt          ('timestamp',  0,   false,    'now()')
144     ->media_creadt      ('timestamp',  0,   false,    'now()')
145     ->media_upddt       ('timestamp',  0,   false,    'now()')
146     ->media_private     ('smallint',   0,   false,    0)
147
148     ->primary('pk_media','media_id')
149     ;
150
151$_s->post_media
152     ->media_id     ('bigint',     0,   false)
153     ->post_id      ('bigint',     0,   false)
154     ->link_type         ('varchar',    32,  false,    "'attachment'")
155
156     ->primary('pk_post_media','media_id','post_id','link_type')
157     ;
158
159$_s->log
160     ->log_id       ('bigint',     0,   false)
161     ->user_id      ('varchar',    32,  true)
162     ->blog_id      ('varchar',    32,  true)
163     ->log_table    ('varchar',    255, false)
164     ->log_dt       ('timestamp',  0,   false,    'now()')
165     ->log_ip       ('varchar',    39,  false)
166     ->log_msg      ('text',  0,   true,     null)
167
168     ->primary('pk_log','log_id')
169     ;
170
171$_s->version
172     ->module  ('varchar',    64,  false)
173     ->version ('varchar',    32,  false)
174
175     ->primary('pk_version','module')
176     ;
177
178$_s->ping
179     ->post_id      ('bigint',     0,   false)
180     ->ping_url     ('varchar',    255, false)
181     ->ping_dt      ('timestamp',  0,   false,    'now()')
182
183     ->primary('pk_ping','post_id','ping_url')
184     ;
185
186$_s->comment
187     ->comment_id             ('bigint',     0,   false)
188     ->post_id                ('bigint',     0,   false)
189     ->comment_dt             ('timestamp',  0,   false,    'now()')
190     ->comment_tz             ('varchar',    128, false,    "'UTC'")
191     ->comment_upddt          ('timestamp',  0,   false,    'now()')
192     ->comment_author         ('varchar',    255, true,     null)
193     ->comment_email          ('varchar',    255, true,     null)
194     ->comment_site           ('varchar',    255, true,     null)
195     ->comment_content        ('text',       0,   true)
196     ->comment_words          ('text',       0,   true,     null)
197     ->comment_ip             ('varchar',    39,  true,     null)
198     ->comment_status         ('smallint',   0,   true,     0)
199     ->comment_spam_status    ('varchar',    128, true,     0)
200     ->comment_spam_filter    ('varchar',    32,  true,     null)
201     ->comment_trackback      ('smallint',   0,   false,    0)
202
203     ->primary('pk_comment','comment_id')
204     ;
205
206$_s->meta
207     ->meta_id      ('varchar',    255, false)
208     ->meta_type    ('varchar',    64,  false)
209     ->post_id      ('bigint',     0,   false)
210
211     ->primary('pk_meta','meta_id','meta_type','post_id')
212     ;
213
214$_s->pref
215     ->pref_id      ('varchar',    255, false)
216     ->user_id           ('varchar',    32,  true)
217     ->pref_ws      ('varchar',    32,  false,    "'system'")
218     ->pref_value   ('text',       0,   true,     null)
219     ->pref_type         ('varchar',    8,   false,    "'string'")
220     ->pref_label   ('text',       0,   true)
221
222     ->unique('uk_pref','pref_ws','pref_id','user_id')
223     ;
224
225/* References indexes
226-------------------------------------------------------- */
227$_s->category->index     ('idx_category_blog_id',           'btree',  'blog_id');
228$_s->category->index     ('idx_category_cat_lft_blog_id',   'btree',  'blog_id', 'cat_lft');
229$_s->category->index     ('idx_category_cat_rgt_blog_id',   'btree',  'blog_id', 'cat_rgt');
230$_s->setting->index      ('idx_setting_blog_id',            'btree',  'blog_id');
231$_s->user->index         ('idx_user_user_default_blog',     'btree',  'user_default_blog');
232$_s->permissions->index  ('idx_permissions_blog_id',        'btree',  'blog_id');
233$_s->post->index         ('idx_post_cat_id',                'btree',  'cat_id');
234$_s->post->index         ('idx_post_user_id',               'btree',  'user_id');
235$_s->post->index         ('idx_post_blog_id',               'btree',  'blog_id');
236$_s->media->index        ('idx_media_user_id',              'btree',  'user_id');
237$_s->post_media->index   ('idx_post_media_post_id',         'btree',  'post_id');
238$_s->post_media->index   ('idx_post_media_media_id',        'btree',  'media_id');
239$_s->log->index          ('idx_log_user_id',                'btree',  'user_id');
240$_s->comment->index      ('idx_comment_post_id',            'btree',  'post_id');
241$_s->meta->index         ('idx_meta_post_id',     'btree','post_id');
242$_s->meta->index         ('idx_meta_meta_type',   'btree','meta_type');
243$_s->pref->index         ('idx_pref_user_id',               'btree',  'user_id');
244
245/* Performance indexes
246-------------------------------------------------------- */
247$_s->comment->index      ('idx_comment_post_id_dt_status',  'btree',  'post_id', 'comment_dt', 'comment_status');
248$_s->post->index         ('idx_post_post_dt',               'btree',  'post_dt');
249$_s->post->index         ('idx_post_post_dt_post_id',       'btree',  'post_dt','post_id');
250$_s->post->index         ('idx_blog_post_post_dt_post_id',  'btree',  'blog_id','post_dt','post_id');
251$_s->post->index         ('idx_blog_post_post_status',      'btree',  'blog_id','post_status');
252$_s->blog->index         ('idx_blog_blog_upddt',            'btree',  'blog_upddt');
253$_s->user->index         ('idx_user_user_super',            'btree',  'user_super');
254
255/* Foreign keys
256-------------------------------------------------------- */
257$_s->category->reference('fk_category_blog','blog_id','blog','blog_id','cascade','cascade');
258$_s->setting->reference('fk_setting_blog','blog_id','blog','blog_id','cascade','cascade');
259$_s->user->reference('fk_user_default_blog','user_default_blog','blog','blog_id','cascade','set null');
260$_s->permissions->reference('fk_permissions_blog','blog_id','blog','blog_id','cascade','cascade');
261$_s->permissions->reference('fk_permissions_user','user_id','user','user_id','cascade','cascade');
262$_s->post->reference('fk_post_category','cat_id','category','cat_id','cascade','set null');
263$_s->post->reference('fk_post_user','user_id','user','user_id','cascade','cascade');
264$_s->post->reference('fk_post_blog','blog_id','blog','blog_id','cascade','cascade');
265$_s->media->reference('fk_media_user','user_id','user','user_id','cascade','cascade');
266$_s->post_media->reference('fk_media','media_id','media','media_id','cascade','cascade');
267$_s->post_media->reference('fk_media_post','post_id','post','post_id','cascade','cascade');
268$_s->ping->reference('fk_ping_post','post_id','post','post_id','cascade','cascade');
269$_s->comment->reference('fk_comment_post','post_id','post','post_id','cascade','cascade');
270$_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null');
271$_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade');
272$_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade');
273
274/* PostgreSQL specific indexes
275-------------------------------------------------------- */
276if ($_s->driver() == 'pgsql')
277{
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