|
Вопрос по проектированию и ключам
#36511513
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
Здравствуйте.
Создаю примитивную CRM систему для своего офиса. итак задача: чтобы каждый человек видел задачи и планы только свои и своего отдела. чтобы мог занести новые предприятия и контактных лиц.
В итоге у меня получилось 7 таблиц:
company - информация о компании
kontakt - контактные лица
otdel - отдел
users - пользотатели
reg - регистрационные данные пользователя
history и plan - соответственно история и планы пользователя.
Поиск будет по дате, предприятию, контактному лицу, отделу и пользователю. Я вот сомневаюсь на счет ключей и связанных таблиц. Помогите плиз.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141.
-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 4.1.16-nt
/*!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 */;
/*!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' */;
--
-- Create schema crm
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ crm;
USE crm;
DROP TABLE IF EXISTS `company`;
CREATE TABLE `company` (
`id_comp` int( 10 ) unsigned NOT NULL auto_increment,
`name_comp` varchar( 255 ) NOT NULL default '',
`strana` varchar( 25 ) NOT NULL default '',
`adres` varchar( 25 ) NOT NULL default '',
`gorod` varchar( 25 ) NOT NULL default '',
`region` varchar( 25 ) NOT NULL default '',
`fax` varchar( 20 ) NOT NULL default '',
`www` varchar( 15 ) NOT NULL default '',
`reg` datetime NOT NULL default '0000-00-00 00:00:00',
`user` varchar( 45 ) NOT NULL default '',
PRIMARY KEY (`id_comp`),
KEY `fk_company_kontakt1` (`id_comp`),
KEY `fk_company_history1` (`id_comp`),
KEY `fk_company_plan1` (`id_comp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `company` DISABLE KEYS */;
/*!40000 ALTER TABLE `company` ENABLE KEYS */;
DROP TABLE IF EXISTS `history`;
CREATE TABLE `history` (
`id_comp` int( 10 ) unsigned NOT NULL default '0',
`id_hist` int( 10 ) unsigned NOT NULL auto_increment,
`id_otd` int( 10 ) unsigned NOT NULL default '0',
`id_users` int( 10 ) unsigned NOT NULL default '0',
`text` varchar( 255 ) NOT NULL default '',
`dat` datetime NOT NULL default '0000-00-00 00:00:00',
`budilnik` varchar( 45 ) NOT NULL default '',
PRIMARY KEY (`id_hist`,`id_comp`,`id_otd`,`id_users`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `history` DISABLE KEYS */;
/*!40000 ALTER TABLE `history` ENABLE KEYS */;
DROP TABLE IF EXISTS `kontakt`;
CREATE TABLE `kontakt` (
`id_comp` int( 10 ) unsigned NOT NULL default '0',
`fio` varchar( 75 ) NOT NULL default '',
`dolgn` varchar( 45 ) NOT NULL default '',
`otdel` varchar( 50 ) NOT NULL default '',
`tel` varchar( 45 ) NOT NULL default '',
`email` varchar( 45 ) NOT NULL default '',
PRIMARY KEY (`id_comp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `kontakt` DISABLE KEYS */;
/*!40000 ALTER TABLE `kontakt` ENABLE KEYS */;
DROP TABLE IF EXISTS `otdel`;
CREATE TABLE `otdel` (
`id_otd` int( 10 ) unsigned NOT NULL auto_increment,
`otdel` varchar( 45 ) NOT NULL default '',
PRIMARY KEY (`id_otd`),
KEY `fk_otdel_users` (`id_otd`),
KEY `fk_otdel_plan1` (`id_otd`),
KEY `fk_otdel_history1` (`id_otd`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `otdel` DISABLE KEYS */;
/*!40000 ALTER TABLE `otdel` ENABLE KEYS */;
DROP TABLE IF EXISTS `plan`;
CREATE TABLE `plan` (
`id_plan` int( 10 ) unsigned NOT NULL auto_increment,
`id_comp` int( 10 ) unsigned NOT NULL default '0',
`id_otd` int( 10 ) unsigned NOT NULL default '0',
`id_users` int( 10 ) unsigned NOT NULL default '0',
`type` varchar( 25 ) NOT NULL default '',
`dat` datetime NOT NULL default '0000-00-00 00:00:00',
`text` varchar( 255 ) NOT NULL default '',
PRIMARY KEY (`id_plan`,`id_comp`,`id_otd`,`id_users`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `plan` DISABLE KEYS */;
/*!40000 ALTER TABLE `plan` ENABLE KEYS */;
DROP TABLE IF EXISTS `reg`;
CREATE TABLE `reg` (
`idreg` int( 10 ) unsigned NOT NULL auto_increment,
`md5` varchar( 20 ) NOT NULL default '',
`name` varchar( 45 ) NOT NULL default '',
`pass` varchar( 45 ) NOT NULL default '',
PRIMARY KEY (`idreg`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `reg` DISABLE KEYS */;
/*!40000 ALTER TABLE `reg` ENABLE KEYS */;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`user_id` int( 10 ) unsigned NOT NULL auto_increment,
`user` varchar( 45 ) NOT NULL default '',
`name` varchar( 45 ) NOT NULL default '',
`id_otd` int( 10 ) unsigned NOT NULL default '0',
PRIMARY KEY (`user_id`,`id_otd`),
KEY `fk_users_plan1` (`user_id`),
KEY `fk_users_history1` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
/*!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 */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
|