diff options
author | thomascube <thomas@roundcube.net> | 2010-03-26 16:38:20 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2010-03-26 16:38:20 +0000 |
commit | a61bbb24aafec5718ca9bc985e7c596c5821f018 (patch) | |
tree | 0aac5efbd70ab7fbdb42cb4d7a0302a3a51f3fac /SQL | |
parent | c75f8e9526d629c9b5aa7396885ae76d20c5c255 (diff) |
Added basic contact groups feature
Diffstat (limited to 'SQL')
-rw-r--r-- | SQL/mysql.initial.sql | 25 | ||||
-rw-r--r-- | SQL/mysql.update.sql | 23 | ||||
-rw-r--r-- | SQL/sqlite.initial.sql | 22 | ||||
-rw-r--r-- | SQL/sqlite.update.sql | 18 |
4 files changed, 87 insertions, 1 deletions
diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql index 7a22a60f6..c201beae5 100644 --- a/SQL/mysql.initial.sql +++ b/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/SQL/mysql.update.sql b/SQL/mysql.update.sql index c4a897903..5de1f57b2 100644 --- a/SQL/mysql.update.sql +++ b/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/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index 30546bbb2..8929c62ea 100644 --- a/SQL/sqlite.initial.sql +++ b/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/SQL/sqlite.update.sql b/SQL/sqlite.update.sql index fd90d48f6..1011f52c2 100644 --- a/SQL/sqlite.update.sql +++ b/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) +); + |