Dotclear

source: inc/dbschema/db-schema.php @ 848:ad18a33a3cef

Revision 848:ad18a33a3cef, 8.8 KB checked in by Dsls <dsls@…>, 13 years ago (diff)

sexy step 1 : no more comments ...

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 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     ->primary('pk_post','post_id')
126     
127     ->unique('uk_post_url','post_url','post_type','blog_id')
128     ;
129
130$_s->media
131     ->media_id          ('bigint',     0,   false)
132     ->user_id           ('varchar',    32,  false)
133     ->media_path        ('varchar',    255, false)
134     ->media_title       ('varchar',    255, false)
135     ->media_file        ('varchar',    255, false)
136     ->media_dir         ('varchar',    255, false,    "'.'")
137     ->media_meta        ('text',       0,   true,     null)
138     ->media_dt          ('timestamp',  0,   false,    'now()')
139     ->media_creadt      ('timestamp',  0,   false,    'now()')
140     ->media_upddt       ('timestamp',  0,   false,    'now()')
141     ->media_private     ('smallint',   0,   false,    0)
142     
143     ->primary('pk_media','media_id')
144     ;
145
146$_s->post_media
147     ->media_id     ('bigint',     0,   false)
148     ->post_id      ('bigint',     0,   false)
149     ->link_type         ('varchar',    32,  false,    "'attachment'")
150     
151     ->primary('pk_post_media','media_id','post_id','link_type')
152     ;
153
154$_s->log
155     ->log_id       ('bigint',     0,   false)
156     ->user_id      ('varchar',    32,  true)
157     ->blog_id      ('varchar',    32,  true)
158     ->log_table    ('varchar',    255, false)
159     ->log_dt       ('timestamp',  0,   false,    'now()')
160     ->log_ip       ('varchar',    39,  false)
161     ->log_msg      ('varchar',    255, false)
162     
163     ->primary('pk_log','log_id')
164     ;
165
166$_s->version
167     ->module  ('varchar',    64,  false)
168     ->version ('varchar',    32,  false)
169     
170     ->primary('pk_version','module')
171     ;
172
173$_s->meta
174     ->meta_id      ('varchar',    255, false)
175     ->meta_type    ('varchar',    64,  false)
176     ->post_id      ('bigint',     0,   false)
177     
178     ->primary('pk_meta','meta_id','meta_type','post_id')
179     ;
180
181$_s->pref
182     ->pref_id      ('varchar',    255, false)
183     ->user_id           ('varchar',    32,  true)
184     ->pref_ws      ('varchar',    32,  false,    "'system'")
185     ->pref_value   ('text',       0,   true,     null)
186     ->pref_type         ('varchar',    8,   false,    "'string'")
187     ->pref_label   ('text',       0,   true)
188     
189     ->unique('uk_pref','pref_ws','pref_id','user_id')
190     ;
191
192/* References indexes
193-------------------------------------------------------- */
194$_s->category->index     ('idx_category_blog_id',           'btree',  'blog_id');
195$_s->category->index     ('idx_category_cat_lft_blog_id',   'btree',  'blog_id', 'cat_lft');
196$_s->category->index     ('idx_category_cat_rgt_blog_id',   'btree',  'blog_id', 'cat_rgt');
197$_s->setting->index      ('idx_setting_blog_id',            'btree',  'blog_id');
198$_s->user->index         ('idx_user_user_default_blog',     'btree',  'user_default_blog');
199$_s->permissions->index  ('idx_permissions_blog_id',        'btree',  'blog_id');
200$_s->post->index         ('idx_post_cat_id',                'btree',  'cat_id');
201$_s->post->index         ('idx_post_user_id',               'btree',  'user_id');
202$_s->post->index         ('idx_post_blog_id',               'btree',  'blog_id');
203$_s->media->index        ('idx_media_user_id',              'btree',  'user_id');
204$_s->post_media->index   ('idx_post_media_post_id',         'btree',  'post_id');
205$_s->post_media->index   ('idx_post_media_media_id',        'btree',  'media_id');
206$_s->log->index          ('idx_log_user_id',                'btree',  'user_id');
207$_s->meta->index         ('idx_meta_post_id',     'btree','post_id');
208$_s->meta->index         ('idx_meta_meta_type',   'btree','meta_type');
209$_s->pref->index         ('idx_pref_user_id',               'btree',  'user_id');
210
211/* Performance indexes
212-------------------------------------------------------- */
213$_s->post->index         ('idx_post_post_dt',               'btree',  'post_dt');
214$_s->post->index         ('idx_post_post_dt_post_id',       'btree',  'post_dt','post_id');
215$_s->post->index         ('idx_blog_post_post_dt_post_id',  'btree',  'blog_id','post_dt','post_id');
216$_s->post->index         ('idx_blog_post_post_status',      'btree',  'blog_id','post_status');
217$_s->blog->index         ('idx_blog_blog_upddt',            'btree',  'blog_upddt');
218$_s->user->index         ('idx_user_user_super',            'btree',  'user_super');
219
220/* Foreign keys
221-------------------------------------------------------- */
222$_s->category->reference('fk_category_blog','blog_id','blog','blog_id','cascade','cascade');
223$_s->setting->reference('fk_setting_blog','blog_id','blog','blog_id','cascade','cascade');
224$_s->user->reference('fk_user_default_blog','user_default_blog','blog','blog_id','cascade','set null');
225$_s->permissions->reference('fk_permissions_blog','blog_id','blog','blog_id','cascade','cascade');
226$_s->permissions->reference('fk_permissions_user','user_id','user','user_id','cascade','cascade');
227$_s->post->reference('fk_post_category','cat_id','category','cat_id','cascade','set null');
228$_s->post->reference('fk_post_user','user_id','user','user_id','cascade','cascade');
229$_s->post->reference('fk_post_blog','blog_id','blog','blog_id','cascade','cascade');
230$_s->media->reference('fk_media_user','user_id','user','user_id','cascade','cascade');
231$_s->post_media->reference('fk_media','media_id','media','media_id','cascade','cascade');
232$_s->post_media->reference('fk_media_post','post_id','post','post_id','cascade','cascade');
233$_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null');
234$_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade');
235$_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade');
236
237/* PostgreSQL specific indexes
238-------------------------------------------------------- */
239if ($_s->driver() == 'pgsql')
240{
241     $_s->setting->index      ('idx_setting_blog_id_null',  'btree',  '(blog_id IS NULL)');
242     $_s->media->index        ('idx_media_media_path',      'btree',  'media_path', 'media_dir');
243     $_s->pref->index         ('idx_pref_user_id_null',          'btree',  '(user_id IS NULL)');
244}
245?>
Note: See TracBrowser for help on using the repository browser.

Sites map