source: subversion/trunk/roundcubemail/SQL/mysql5.initial.sql @ 1218

Last change on this file since 1218 was 1218, checked in by thomasb, 5 years ago

Optimize database schema; get rid of unnecessary indexes

File size: 4.0 KB
Line 
1-- RoundCube Webmail initial database structure
2-- Version 0.1
3
4-- --------------------------------------------------------
5
6SET FOREIGN_KEY_CHECKS=0;
7
8
9-- Table structure for table `session`
10
11CREATE TABLE `session` (
12 `sess_id` varchar(40) NOT NULL,
13 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
14 `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
15 `ip` varchar(40) NOT NULL,
16 `vars` text NOT NULL,
17 PRIMARY KEY(`sess_id`)
18) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
19
20
21-- Table structure for table `users`
22
23CREATE TABLE `users` (
24 `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
25 `username` varchar(128) NOT NULL,
26 `mail_host` varchar(128) NOT NULL,
27 `alias` varchar(128) NOT NULL,
28 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
29 `last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
30 `language` varchar(5) NOT NULL DEFAULT 'en',
31 `preferences` text,
32 PRIMARY KEY(`user_id`)
33) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
34
35
36-- Table structure for table `messages`
37
38CREATE TABLE `messages` (
39 `message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
40 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
41 `del` tinyint(1) NOT NULL DEFAULT '0',
42 `cache_key` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
43 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
44 `idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
45 `uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
46 `subject` varchar(255) NOT NULL,
47 `from` varchar(255) NOT NULL,
48 `to` varchar(255) NOT NULL,
49 `cc` varchar(255) NOT NULL,
50 `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
51 `size` int(11) UNSIGNED NOT NULL DEFAULT '0',
52 `headers` text NOT NULL,
53 `structure` text,
54 PRIMARY KEY(`message_id`),
55 UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
56 CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
57   REFERENCES `users`(`user_id`)
58     ON DELETE CASCADE
59     ON UPDATE CASCADE
60) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
61
62
63-- Table structure for table `cache`
64
65CREATE TABLE `cache` (
66 `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
67 `session_id` varchar(40) CHARACTER SET ascii COLLATE ascii_general_ci,
68 `cache_key` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
69 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
70 `data` longtext NOT NULL,
71 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
72 PRIMARY KEY(`cache_id`),
73 INDEX `user_cache_index` (`user_id`,`cache_key`),
74 CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
75   REFERENCES `users`(`user_id`)
76     ON DELETE CASCADE
77     ON UPDATE CASCADE
78) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
79
80
81-- Table structure for table `contacts`
82
83CREATE TABLE `contacts` (
84 `contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
85 `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
86 `del` tinyint(1) NOT NULL DEFAULT '0',
87 `name` varchar(128) NOT NULL,
88 `email` varchar(128) NOT NULL,
89 `firstname` varchar(128) NOT NULL,
90 `surname` varchar(128) NOT NULL,
91 `vcard` text NULL,
92 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
93 PRIMARY KEY(`contact_id`),
94 CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
95   REFERENCES `users`(`user_id`)
96     ON DELETE CASCADE
97     ON UPDATE CASCADE
98) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
99
100
101-- Table structure for table `identities`
102
103CREATE TABLE `identities` (
104 `identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
105 `del` tinyint(1) NOT NULL DEFAULT '0',
106 `standard` tinyint(1) NOT NULL DEFAULT '0',
107 `name` varchar(128) NOT NULL,
108 `organization` varchar(128) NOT NULL,
109 `email` varchar(128) NOT NULL,
110 `reply-to` varchar(128) NOT NULL,
111 `bcc` varchar(128) NOT NULL,
112 `signature` text NOT NULL,
113 `html_signature` tinyint(1) NOT NULL DEFAULT '0',
114 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
115 PRIMARY KEY(`identity_id`),
116 CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
117   REFERENCES `users`(`user_id`)
118     ON DELETE CASCADE
119     ON UPDATE CASCADE
120) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
121
122
123SET FOREIGN_KEY_CHECKS=1;
Note: See TracBrowser for help on using the repository browser.