alecpl
2011-09-19 7b2bf71c332563517b8f0f30c6f214913dc4169e
commit | author | age
107bde 1 CREATE TABLE [dbo].[cache] (
T 2     [cache_id] [int] IDENTITY (1, 1) NOT NULL ,
3     [user_id] [int] NOT NULL ,
4     [cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
5     [created] [datetime] NOT NULL ,
6     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL 
7 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
8 GO
9
80152b 10 CREATE TABLE [dbo].[cache_index] (
A 11     [user_id] [int] NOT NULL ,
12     [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
13     [changed] [datetime] NOT NULL ,
609d39 14     [valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
80152b 15     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL 
A 16 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
17 GO
18
19 CREATE TABLE [dbo].[cache_thread] (
20     [user_id] [int] NOT NULL ,
21     [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
22     [changed] [datetime] NOT NULL ,
23     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL 
24 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
25 GO
26
27 CREATE TABLE [dbo].[cache_messages] (
28     [user_id] [int] NOT NULL ,
29     [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
30     [uid] [int] NOT NULL ,
31     [changed] [datetime] NOT NULL ,
32     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL 
609d39 33     [flags] [int](1) NOT NULL ,
80152b 34 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
A 35 GO
36
107bde 37 CREATE TABLE [dbo].[contacts] (
T 38     [contact_id] [int] IDENTITY (1, 1) NOT NULL ,
39     [user_id] [int] NOT NULL ,
40     [changed] [datetime] NOT NULL ,
41     [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
42     [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
6f0968 43     [email] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL ,
107bde 44     [firstname] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
T 45     [surname] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
3e2637 46     [vcard] [text] COLLATE Latin1_General_CI_AI NULL ,
T 47     [words] [text] COLLATE Latin1_General_CI_AI NULL 
107bde 48 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
T 49 GO
50
96f965 51 CREATE TABLE [dbo].[contactgroups] (
T 52     [contactgroup_id] [int] IDENTITY (1, 1) NOT NULL ,
53     [user_id] [int] NOT NULL ,
54     [changed] [datetime] NOT NULL ,
55     [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
56     [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
ac1898 57 ) ON [PRIMARY] 
96f965 58 GO
T 59
60 CREATE TABLE [dbo].[contactgroupmembers] (
61     [contactgroup_id] [int] NOT NULL ,
62     [contact_id] [int] NOT NULL ,
63     [created] [datetime] NOT NULL
ac1898 64 ) ON [PRIMARY] 
96f965 65 GO
T 66
107bde 67 CREATE TABLE [dbo].[identities] (
T 68     [identity_id] [int] IDENTITY (1, 1) NOT NULL ,
69     [user_id] [int] NOT NULL ,
a35062 70     [changed] [datetime] NOT NULL ,
107bde 71     [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
T 72     [standard] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
73     [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
74     [organization] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
75     [email] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
76     [reply-to] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
77     [bcc] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
7c6bc1 78     [signature] [text] COLLATE Latin1_General_CI_AI NULL, 
97840c 79     [html_signature] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL
107bde 80 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
T 81 GO
82
83 CREATE TABLE [dbo].[session] (
84     [sess_id] [varchar] (32) COLLATE Latin1_General_CI_AI NOT NULL ,
85     [created] [datetime] NOT NULL ,
86     [changed] [datetime] NULL ,
84d06e 87     [ip] [varchar] (40) COLLATE Latin1_General_CI_AI NOT NULL ,
107bde 88     [vars] [text] COLLATE Latin1_General_CI_AI NOT NULL 
T 89 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
90 GO
91
92 CREATE TABLE [dbo].[users] (
93     [user_id] [int] IDENTITY (1, 1) NOT NULL ,
94     [username] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
95     [mail_host] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
96     [alias] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
97     [created] [datetime] NOT NULL ,
e2402e 98     [last_login] [datetime] NULL ,
debdda 99     [language] [varchar] (5) COLLATE Latin1_General_CI_AI NULL ,
7c6bc1 100     [preferences] [text] COLLATE Latin1_General_CI_AI NULL 
107bde 101 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
T 102 GO
103
66df08 104 CREATE TABLE [dbo].[dictionary] (
A 105     [user_id] [int] ,
106     [language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,
107     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL 
108 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
109 GO
110
f8e48d 111 CREATE TABLE [dbo].[searches] (
A 112     [search_id] [int] IDENTITY (1, 1) NOT NULL ,
113     [user_id] [int] NOT NULL ,
114     [type] [tinyint] NOT NULL ,
115     [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
116     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL 
117 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
118 GO
119
107bde 120 ALTER TABLE [dbo].[cache] WITH NOCHECK ADD 
T 121      PRIMARY KEY  CLUSTERED 
122     (
123         [cache_id]
124     )  ON [PRIMARY] 
125 GO
126
80152b 127 ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD 
A 128      PRIMARY KEY CLUSTERED 
129     (
130         [user_id],[mailbox]
131     ) ON [PRIMARY] 
132 GO
133
134 ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD 
135      PRIMARY KEY CLUSTERED 
136     (
137         [user_id],[mailbox]
138     ) ON [PRIMARY] 
139 GO
140
141 ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD 
142      PRIMARY KEY CLUSTERED 
143     (
144         [user_id],[mailbox],[uid]
145     ) ON [PRIMARY] 
146 GO
147
107bde 148 ALTER TABLE [dbo].[contacts] WITH NOCHECK ADD 
T 149     CONSTRAINT [PK_contacts_contact_id] PRIMARY KEY  CLUSTERED 
150     (
151         [contact_id]
152     )  ON [PRIMARY] 
153 GO
154
96f965 155 ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD 
T 156     CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED 
157     (
158         [contactgroup_id]
159     )  ON [PRIMARY] 
160 GO
161
162 ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD 
163     CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED 
164     (
165         [contactgroup_id], [contact_id]
166     )  ON [PRIMARY] 
167 GO
168
107bde 169 ALTER TABLE [dbo].[identities] WITH NOCHECK ADD 
T 170      PRIMARY KEY  CLUSTERED 
171     (
172         [identity_id]
173     )  ON [PRIMARY] 
174 GO
175
176 ALTER TABLE [dbo].[session] WITH NOCHECK ADD 
177     CONSTRAINT [PK_session_sess_id] PRIMARY KEY  CLUSTERED 
178     (
179         [sess_id]
180     )  ON [PRIMARY] 
181 GO
182
183 ALTER TABLE [dbo].[users] WITH NOCHECK ADD 
184     CONSTRAINT [PK_users_user_id] PRIMARY KEY  CLUSTERED 
185     (
186         [user_id]
187     )  ON [PRIMARY] 
f8e48d 188 GO
A 189
190 ALTER TABLE [dbo].[searches] WITH NOCHECK ADD 
191     CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED 
192     (
193         [search_id]
194     ) ON [PRIMARY] 
107bde 195 GO
T 196
197 ALTER TABLE [dbo].[cache] ADD 
198     CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id],
199     CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key],
200     CONSTRAINT [DF_cache_created] DEFAULT (getdate()) FOR [created]
201 GO
202
96f965 203 CREATE  INDEX [IX_cache_user_id] ON [dbo].[cache]([user_id]) ON [PRIMARY]
107bde 204 GO
T 205
96f965 206 CREATE  INDEX [IX_cache_cache_key] ON [dbo].[cache]([cache_key]) ON [PRIMARY]
107bde 207 GO
T 208
96f965 209 CREATE  INDEX [IX_cache_created] ON [dbo].[cache]([created]) ON [PRIMARY]
80152b 210 GO
A 211
212 ALTER TABLE [dbo].[cache_index] ADD 
7b2bf7 213     CONSTRAINT [DF_cache_index_changed] DEFAULT (getdate()) FOR [changed],
A 214     CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid]
80152b 215 GO
A 216
217 CREATE  INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY]
218 GO
219
220 ALTER TABLE [dbo].[cache_thread] ADD 
221     CONSTRAINT [DF_cache_thread_changed] DEFAULT (getdate()) FOR [changed]
222 GO
223
224 CREATE  INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY]
225 GO
226
227 ALTER TABLE [dbo].[cache_messages] ADD 
7b2bf7 228     CONSTRAINT [DF_cache_messages_changed] DEFAULT (getdate()) FOR [changed],
609d39 229     CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags],
80152b 230 GO
A 231
232 CREATE  INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY]
e4d9f0 233 GO
A 234
107bde 235 ALTER TABLE [dbo].[contacts] ADD 
T 236     CONSTRAINT [DF_contacts_user_id] DEFAULT (0) FOR [user_id],
237     CONSTRAINT [DF_contacts_changed] DEFAULT (getdate()) FOR [changed],
238     CONSTRAINT [DF_contacts_del] DEFAULT ('0') FOR [del],
239     CONSTRAINT [DF_contacts_name] DEFAULT ('') FOR [name],
240     CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email],
241     CONSTRAINT [DF_contacts_firstname] DEFAULT ('') FOR [firstname],
242     CONSTRAINT [DF_contacts_surname] DEFAULT ('') FOR [surname],
243     CONSTRAINT [CK_contacts_del] CHECK ([del] = '1' or [del] = '0')
244 GO
245
96f965 246 CREATE  INDEX [IX_contacts_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]
107bde 247 GO
T 248
96f965 249 ALTER TABLE [dbo].[contactgroups] ADD 
T 250     CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id],
251     CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed],
252     CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del],
253     CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name],
254     CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0')
255 GO
256
257 CREATE  INDEX [IX_contactgroups_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]
258 GO
259
260 ALTER TABLE [dbo].[contactgroupmembers] ADD 
261     CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id],
262     CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id],
263     CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created]
264 GO
265
3a5476 266 CREATE  INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY]
A 267 GO
96f965 268
107bde 269 ALTER TABLE [dbo].[identities] ADD 
T 270     CONSTRAINT [DF_identities_user] DEFAULT ('0') FOR [user_id],
271     CONSTRAINT [DF_identities_del] DEFAULT ('0') FOR [del],
272     CONSTRAINT [DF_identities_standard] DEFAULT ('0') FOR [standard],
273     CONSTRAINT [DF_identities_name] DEFAULT ('') FOR [name],
274     CONSTRAINT [DF_identities_organization] DEFAULT ('') FOR [organization],
275     CONSTRAINT [DF_identities_email] DEFAULT ('') FOR [email],
276     CONSTRAINT [DF_identities_reply] DEFAULT ('') FOR [reply-to],
277     CONSTRAINT [DF_identities_bcc] DEFAULT ('') FOR [bcc],
7c6bc1 278     CONSTRAINT [DF_identities_html_signature] DEFAULT ('0') FOR [html_signature],
107bde 279      CHECK ([standard] = '1' or [standard] = '0'),
T 280      CHECK ([del] = '1' or [del] = '0')
281 GO
282
3cf099 283 CREATE  INDEX [IX_identities_user_id] ON [dbo].[identities]([user_id]) ON [PRIMARY]
107bde 284 GO
T 285
286 ALTER TABLE [dbo].[session] ADD 
287     CONSTRAINT [DF_session_sess_id] DEFAULT ('') FOR [sess_id],
288     CONSTRAINT [DF_session_created] DEFAULT (getdate()) FOR [created],
289     CONSTRAINT [DF_session_ip] DEFAULT ('') FOR [ip]
290 GO
291
3cf099 292 CREATE  INDEX [IX_session_changed] ON [dbo].[session]([changed]) ON [PRIMARY]
3e48d2 293 GO
A 294
107bde 295 ALTER TABLE [dbo].[users] ADD 
T 296     CONSTRAINT [DF_users_username] DEFAULT ('') FOR [username],
297     CONSTRAINT [DF_users_mail_host] DEFAULT ('') FOR [mail_host],
298     CONSTRAINT [DF_users_alias] DEFAULT ('') FOR [alias],
7c6bc1 299     CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created]
107bde 300 GO
T 301
ace511 302 CREATE  UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY]
e4d9f0 303 GO
A 304
3cf099 305 CREATE  INDEX [IX_users_alias] ON [dbo].[users]([alias]) ON [PRIMARY]
A 306 GO
307
66df08 308 CREATE  UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY]
A 309 GO
310
f8e48d 311 ALTER TABLE [dbo].[searches] ADD 
A 312     CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id],
313     CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type],
314 GO
315
316 CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY]
317 GO
318
ac1898 319 ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id] 
A 320     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
3cf099 321     ON DELETE CASCADE ON UPDATE CASCADE
A 322 GO
323
ac1898 324 ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]
A 325     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
3cf099 326     ON DELETE CASCADE ON UPDATE CASCADE
A 327 GO
328
ac1898 329 ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]
A 330     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
3cf099 331     ON DELETE CASCADE ON UPDATE CASCADE
A 332 GO
333
ac1898 334 ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]
A 335     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
3cf099 336     ON DELETE CASCADE ON UPDATE CASCADE
A 337 GO
338
80152b 339 ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]
A 340     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
341     ON DELETE CASCADE ON UPDATE CASCADE
342 GO
343
344 ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]
345     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
346     ON DELETE CASCADE ON UPDATE CASCADE
347 GO
348
349 ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]
ac1898 350     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
3cf099 351     ON DELETE CASCADE ON UPDATE CASCADE
A 352 GO
353
ac1898 354 ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]
A 355     FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])
3cf099 356     ON DELETE CASCADE ON UPDATE CASCADE
A 357 GO
358
f8e48d 359 ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]
A 360     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
361     ON DELETE CASCADE ON UPDATE CASCADE
362 GO
363
871013 364 -- Use trigger instead of foreign key (#1487112)
A 365 -- "Introducing FOREIGN KEY constraint ... may cause cycles or multiple cascade paths."
366 CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
367     AFTER DELETE AS
368     DELETE FROM [dbo].[contactgroupmembers]
369     WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
e4d9f0 370 GO
A 371