From 4e3827e4af2afd35d978cbf027f15c03b3efdc3d Mon Sep 17 00:00:00 2001 From: artem Date: Thu, 5 Sep 2019 11:20:09 +0300 Subject: [PATCH] Create FOREIGN KEY --- sql/Aauth_v2_BCrypt.sql | 367 +++++++++++++++++++++++++++------------- 1 file changed, 247 insertions(+), 120 deletions(-) diff --git a/sql/Aauth_v2_BCrypt.sql b/sql/Aauth_v2_BCrypt.sql index d47e5d2..8a20081 100644 --- a/sql/Aauth_v2_BCrypt.sql +++ b/sql/Aauth_v2_BCrypt.sql @@ -1,74 +1,176 @@ /* Aauth SQL Table Structure */ +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -SET FOREIGN_KEY_CHECKS=0; +-- +-- Table structure for table `aauth_group_to_group` +-- + +DROP TABLE IF EXISTS `aauth_group_to_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `aauth_group_to_group` ( + `group_id` int(11) unsigned NOT NULL, + `subgroup_id` int(11) unsigned NOT NULL, + PRIMARY KEY (`group_id`,`subgroup_id`), + KEY `aauth_group_to_group_FK_1` (`subgroup_id`), + CONSTRAINT `aauth_group_to_group_FK` FOREIGN KEY (`group_id`) REFERENCES `aauth_groups` (`id`) ON DELETE CASCADE, + CONSTRAINT `aauth_group_to_group_FK_1` FOREIGN KEY (`subgroup_id`) REFERENCES `aauth_groups` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Связь между дочерней и родительской группой'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_group_to_group` +-- + +LOCK TABLES `aauth_group_to_group` WRITE; +/*!40000 ALTER TABLE `aauth_group_to_group` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_group_to_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `aauth_groups` +-- --- ---------------------------- --- Table structure for `aauth_groups` --- ---------------------------- DROP TABLE IF EXISTS `aauth_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `aauth_groups` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(100), + `name` varchar(100) DEFAULT NULL, `definition` text, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of aauth_groups --- ---------------------------- -INSERT INTO `aauth_groups` VALUES ('1', 'Admin', 'Super Admin Group'); -INSERT INTO `aauth_groups` VALUES ('2', 'Public', 'Public Access Group'); -INSERT INTO `aauth_groups` VALUES ('3', 'Default', 'Default Access Group'); - --- ---------------------------- --- Table structure for `aauth_perms` --- ---------------------------- -DROP TABLE IF EXISTS `aauth_perms`; -CREATE TABLE `aauth_perms` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(100), - `definition` text, +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='Группы'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_groups` +-- + +LOCK TABLES `aauth_groups` WRITE; +/*!40000 ALTER TABLE `aauth_groups` DISABLE KEYS */; +INSERT INTO `aauth_groups` VALUES (1,'Admin','Super Admin Group'),(2,'Public','Public Access Group'),(3,'Default','Default Access Group'); +/*!40000 ALTER TABLE `aauth_groups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `aauth_login_attempts` +-- + +DROP TABLE IF EXISTS `aauth_login_attempts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `aauth_login_attempts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ip_address` varchar(39) DEFAULT '0', + `timestamp` datetime DEFAULT NULL, + `login_attempts` tinyint(2) DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Неуспешные попытки авторизации'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_login_attempts` +-- --- ---------------------------- --- Records of aauth_perms --- ---------------------------- +LOCK TABLES `aauth_login_attempts` WRITE; +/*!40000 ALTER TABLE `aauth_login_attempts` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_login_attempts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `aauth_perm_to_group` +-- --- ---------------------------- --- Table structure for `aauth_perm_to_group` --- ---------------------------- DROP TABLE IF EXISTS `aauth_perm_to_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `aauth_perm_to_group` ( `perm_id` int(11) unsigned NOT NULL, `group_id` int(11) unsigned NOT NULL, - PRIMARY KEY (`perm_id`,`group_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + PRIMARY KEY (`perm_id`,`group_id`), + KEY `aauth_perm_to_group_FK_1` (`group_id`), + CONSTRAINT `aauth_perm_to_group_FK` FOREIGN KEY (`perm_id`) REFERENCES `aauth_perms` (`id`) ON DELETE CASCADE, + CONSTRAINT `aauth_perm_to_group_FK_1` FOREIGN KEY (`group_id`) REFERENCES `aauth_groups` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Связь прав и групп'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_perm_to_group` +-- --- ---------------------------- --- Records of aauth_perm_to_group --- ---------------------------- +LOCK TABLES `aauth_perm_to_group` WRITE; +/*!40000 ALTER TABLE `aauth_perm_to_group` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_perm_to_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `aauth_perm_to_user` +-- --- ---------------------------- --- Table structure for `aauth_perm_to_user` --- ---------------------------- DROP TABLE IF EXISTS `aauth_perm_to_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `aauth_perm_to_user` ( `perm_id` int(11) unsigned NOT NULL, `user_id` int(11) unsigned NOT NULL, - PRIMARY KEY (`perm_id`,`user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + PRIMARY KEY (`perm_id`,`user_id`), + KEY `aauth_perm_to_user_FK_1` (`user_id`), + CONSTRAINT `aauth_perm_to_user_FK` FOREIGN KEY (`perm_id`) REFERENCES `aauth_perms` (`id`) ON DELETE CASCADE, + CONSTRAINT `aauth_perm_to_user_FK_1` FOREIGN KEY (`user_id`) REFERENCES `aauth_users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Связь прав и пользователей'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_perm_to_user` +-- + +LOCK TABLES `aauth_perm_to_user` WRITE; +/*!40000 ALTER TABLE `aauth_perm_to_user` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_perm_to_user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `aauth_perms` +-- + +DROP TABLE IF EXISTS `aauth_perms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `aauth_perms` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL, + `definition` text, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Список прав'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_perms` +-- + +LOCK TABLES `aauth_perms` WRITE; +/*!40000 ALTER TABLE `aauth_perms` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_perms` ENABLE KEYS */; +UNLOCK TABLES; --- ---------------------------- --- Records of aauth_perm_to_user --- ---------------------------- +-- +-- Table structure for table `aauth_pms` +-- --- ---------------------------- --- Table structure for `aauth_pms` --- ---------------------------- DROP TABLE IF EXISTS `aauth_pms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `aauth_pms` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `sender_id` int(11) unsigned NOT NULL, @@ -80,99 +182,124 @@ CREATE TABLE `aauth_pms` ( `pm_deleted_sender` int(1) DEFAULT NULL, `pm_deleted_receiver` int(1) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `full_index` (`id`,`sender_id`,`receiver_id`,`date_read`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `full_index` (`id`,`sender_id`,`receiver_id`,`date_read`), + KEY `aauth_pms_FK` (`sender_id`), + KEY `aauth_pms_FK_1` (`receiver_id`), + CONSTRAINT `aauth_pms_FK` FOREIGN KEY (`sender_id`) REFERENCES `aauth_users` (`id`) ON DELETE CASCADE, + CONSTRAINT `aauth_pms_FK_1` FOREIGN KEY (`receiver_id`) REFERENCES `aauth_users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Личные сообщения'; +/*!40101 SET character_set_client = @saved_cs_client */; --- ---------------------------- --- Records of aauth_pms --- ---------------------------- +-- +-- Dumping data for table `aauth_pms` +-- --- ---------------------------- --- Table structure for `aauth_users` --- ---------------------------- -DROP TABLE IF EXISTS `aauth_users`; -CREATE TABLE `aauth_users` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `email` varchar(100) COLLATE utf8_general_ci NOT NULL, - `pass` varchar(60) COLLATE utf8_general_ci NOT NULL, - `username` varchar(100) COLLATE utf8_general_ci, - `banned` tinyint(1) DEFAULT '0', - `last_login` datetime DEFAULT NULL, - `last_activity` datetime DEFAULT NULL, - `date_created` datetime DEFAULT NULL, - `forgot_exp` text COLLATE utf8_general_ci, - `remember_time` datetime DEFAULT NULL, - `remember_exp` text COLLATE utf8_general_ci, - `verification_code` text COLLATE utf8_general_ci, - `totp_secret` varchar(16) COLLATE utf8_general_ci DEFAULT NULL, - `ip_address` text COLLATE utf8_general_ci, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +LOCK TABLES `aauth_pms` WRITE; +/*!40000 ALTER TABLE `aauth_pms` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_pms` ENABLE KEYS */; +UNLOCK TABLES; --- ---------------------------- --- Records of aauth_users --- ---------------------------- -INSERT INTO `aauth_users` VALUES ('1', 'admin@example.com', '$2y$10$h19Lblcr6amOIUL1TgYW2.VVZOhac/e1kHMgAwCubMTlYXZrL0wS2', 'Admin', '0', null, null, null, null, null, null, null, null, '0'); +-- +-- Table structure for table `aauth_user_to_group` +-- --- ---------------------------- --- Table structure for `aauth_user_to_group` --- ---------------------------- DROP TABLE IF EXISTS `aauth_user_to_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `aauth_user_to_group` ( `user_id` int(11) unsigned NOT NULL, `group_id` int(11) unsigned NOT NULL, - PRIMARY KEY (`user_id`,`group_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of aauth_user_to_group --- ---------------------------- -INSERT INTO `aauth_user_to_group` VALUES ('1', '1'); -INSERT INTO `aauth_user_to_group` VALUES ('1', '3'); - --- ---------------------------- --- Table structure for `aauth_user_variables` --- ---------------------------- + PRIMARY KEY (`user_id`,`group_id`), + KEY `aauth_user_to_group_FK_1` (`group_id`), + CONSTRAINT `aauth_user_to_group_FK` FOREIGN KEY (`user_id`) REFERENCES `aauth_users` (`id`) ON DELETE CASCADE, + CONSTRAINT `aauth_user_to_group_FK_1` FOREIGN KEY (`group_id`) REFERENCES `aauth_groups` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Связь пользователей и групп'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_user_to_group` +-- + +LOCK TABLES `aauth_user_to_group` WRITE; +/*!40000 ALTER TABLE `aauth_user_to_group` DISABLE KEYS */; +INSERT INTO `aauth_user_to_group` VALUES (1,1),(1,3); +/*!40000 ALTER TABLE `aauth_user_to_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `aauth_user_variables` +-- + DROP TABLE IF EXISTS `aauth_user_variables`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `aauth_user_variables` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(11) unsigned NOT NULL, `data_key` varchar(100) NOT NULL, `value` text, PRIMARY KEY (`id`), - KEY `user_id_index` (`user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `user_id_index` (`user_id`), + CONSTRAINT `aauth_user_variables_FK` FOREIGN KEY (`user_id`) REFERENCES `aauth_users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Пользовательские параметры'; +/*!40101 SET character_set_client = @saved_cs_client */; --- ---------------------------- --- Records of aauth_user_variables --- ---------------------------- - --- ---------------------------- --- Table structure for `aauth_group_to_group` --- ---------------------------- -DROP TABLE IF EXISTS `aauth_group_to_group`; -CREATE TABLE `aauth_group_to_group` ( - `group_id` int(11) unsigned NOT NULL, - `subgroup_id` int(11) unsigned NOT NULL, - PRIMARY KEY (`group_id`,`subgroup_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- +-- Dumping data for table `aauth_user_variables` +-- --- ---------------------------- --- Records of aauth_group_to_group --- ---------------------------- +LOCK TABLES `aauth_user_variables` WRITE; +/*!40000 ALTER TABLE `aauth_user_variables` DISABLE KEYS */; +/*!40000 ALTER TABLE `aauth_user_variables` ENABLE KEYS */; +UNLOCK TABLES; --- ---------------------------- --- Table structure for `aauth_login_attempts` --- ---------------------------- +-- +-- Table structure for table `aauth_users` +-- -CREATE TABLE IF NOT EXISTS `aauth_login_attempts` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ip_address` varchar(39) DEFAULT '0', - `timestamp` datetime DEFAULT NULL, - `login_attempts` tinyint(2) DEFAULT '0', +DROP TABLE IF EXISTS `aauth_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `aauth_users` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `email` varchar(100) NOT NULL, + `pass` varchar(60) NOT NULL, + `username` varchar(100) DEFAULT NULL, + `banned` tinyint(1) DEFAULT '0', + `last_login` datetime DEFAULT NULL, + `last_activity` datetime DEFAULT NULL, + `date_created` datetime DEFAULT NULL, + `forgot_exp` text, + `remember_time` datetime DEFAULT NULL, + `remember_exp` text, + `verification_code` text, + `totp_secret` varchar(16) DEFAULT NULL, + `ip_address` text, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='Список пользователей'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `aauth_users` +-- + +LOCK TABLES `aauth_users` WRITE; +/*!40000 ALTER TABLE `aauth_users` DISABLE KEYS */; +INSERT INTO `aauth_users` VALUES (1,'admin@example.com','$2y$10$h19Lblcr6amOIUL1TgYW2.VVZOhac/e1kHMgAwCubMTlYXZrL0wS2','Admin',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0'); +/*!40000 ALTER TABLE `aauth_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'roundcubemail' +-- +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- ---------------------------- --- Records of aauth_login_attempts --- ---------------------------- +-- Dump completed on 2019-09-05 11:08:43