summaryrefslogtreecommitdiff
path: root/roundcubemail/SQL
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-26 16:38:20 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-26 16:38:20 +0000
commitbd5d5af44f31861c40b2a0cde573e974a9d5b6bf (patch)
tree49528eae7022cf601115aee0e169d527a5f23ef0 /roundcubemail/SQL
parent7ae2aa58bc71e0689dea7cb8cd704242f5b9a80b (diff)
Added basic contact groups feature
git-svn-id: https://svn.roundcube.net/trunk@3425 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/SQL')
-rw-r--r--roundcubemail/SQL/mysql.initial.sql25
-rw-r--r--roundcubemail/SQL/mysql.update.sql23
-rw-r--r--roundcubemail/SQL/sqlite.initial.sql22
-rw-r--r--roundcubemail/SQL/sqlite.update.sql18
4 files changed, 87 insertions, 1 deletions
diff --git a/roundcubemail/SQL/mysql.initial.sql b/roundcubemail/SQL/mysql.initial.sql
index 7a22a60f6..c201beae5 100644
--- a/roundcubemail/SQL/mysql.initial.sql
+++ b/roundcubemail/SQL/mysql.initial.sql
@@ -94,6 +94,31 @@ CREATE TABLE `contacts` (
INDEX `user_contacts_index` (`user_id`,`email`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+-- Table structure for table `contactgroups`
+
+CREATE TABLE `contactgroups` (
+ `contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `del` tinyint(1) NOT NULL DEFAULT '0',
+ `name` varchar(128) NOT NULL DEFAULT '',
+ PRIMARY KEY(`contactgroup_id`),
+ CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ INDEX `contactgroups_user_index` (`user_id`,`del`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `contactgroupmembers` (
+ `contactgroup_id` int(10) UNSIGNED NOT NULL,
+ `contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`contactgroup_id`, `contact_id`),
+ CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
+ REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
+ REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */;
+
-- Table structure for table `identities`
diff --git a/roundcubemail/SQL/mysql.update.sql b/roundcubemail/SQL/mysql.update.sql
index c4a897903..5de1f57b2 100644
--- a/roundcubemail/SQL/mysql.update.sql
+++ b/roundcubemail/SQL/mysql.update.sql
@@ -83,4 +83,27 @@ ALTER TABLE `contacts` ALTER `surname` SET DEFAULT '';
ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`);
+CREATE TABLE `contactgroups` (
+ `contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `del` tinyint(1) NOT NULL DEFAULT '0',
+ `name` varchar(128) NOT NULL DEFAULT '',
+ PRIMARY KEY(`contactgroup_id`),
+ CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ INDEX `contactgroups_user_index` (`user_id`,`del`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `contactgroupmembers` (
+ `contactgroup_id` int(10) UNSIGNED NOT NULL,
+ `contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`contactgroup_id`, `contact_id`),
+ CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
+ REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
+ REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */;
+
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
diff --git a/roundcubemail/SQL/sqlite.initial.sql b/roundcubemail/SQL/sqlite.initial.sql
index 30546bbb2..8929c62ea 100644
--- a/roundcubemail/SQL/sqlite.initial.sql
+++ b/roundcubemail/SQL/sqlite.initial.sql
@@ -19,7 +19,7 @@ CREATE INDEX ix_cache_created ON cache(created);
-- --------------------------------------------------------
--
--- Table structure for table contacts
+-- Table structure for table contacts and related
--
CREATE TABLE contacts (
@@ -36,6 +36,26 @@ CREATE TABLE contacts (
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
+
+CREATE TABLE contactgroups (
+ contactgroup_id integer NOT NULL PRIMARY KEY,
+ user_id integer NOT NULL default '0',
+ changed datetime NOT NULL default '0000-00-00 00:00:00',
+ del tinyint NOT NULL default '0',
+ name varchar(128) NOT NULL default ''
+);
+
+CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
+
+
+CREATE TABLE contactgroupmembers (
+ contactgroup_id integer NOT NULL,
+ contact_id integer NOT NULL default '0',
+ created datetime NOT NULL default '0000-00-00 00:00:00',
+ PRIMARY KEY (contactgroup_id, contact_id)
+);
+
+
-- --------------------------------------------------------
--
diff --git a/roundcubemail/SQL/sqlite.update.sql b/roundcubemail/SQL/sqlite.update.sql
index fd90d48f6..1011f52c2 100644
--- a/roundcubemail/SQL/sqlite.update.sql
+++ b/roundcubemail/SQL/sqlite.update.sql
@@ -47,3 +47,21 @@ CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
DROP INDEX ix_identities_user_id;
CREATE INDEX ix_identities_user_id ON identities (user_id, del);
+
+CREATE TABLE contactgroups (
+ contactgroup_id integer NOT NULL PRIMARY KEY,
+ user_id integer NOT NULL default '0',
+ changed datetime NOT NULL default '0000-00-00 00:00:00',
+ del tinyint NOT NULL default '0',
+ name varchar(128) NOT NULL default ''
+);
+
+CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
+
+CREATE TABLE contactgroupmembers (
+ contactgroup_id integer NOT NULL,
+ contact_id integer NOT NULL default '0',
+ created datetime NOT NULL default '0000-00-00 00:00:00',
+ PRIMARY KEY (contactgroup_id, contact_id)
+);
+