Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по проектированию и ключам / 4 сообщений из 4, страница 1 из 1
10.03.2010, 13:56
    #36511513
voffka-mc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по проектированию и ключам
Здравствуйте.

Создаю примитивную CRM систему для своего офиса. итак задача: чтобы каждый человек видел задачи и планы только свои и своего отдела. чтобы мог занести новые предприятия и контактных лиц.

В итоге у меня получилось 7 таблиц:
company - информация о компании
kontakt - контактные лица
otdel - отдел
users - пользотатели
reg - регистрационные данные пользователя
history и plan - соответственно история и планы пользователя.

Поиск будет по дате, предприятию, контактному лицу, отделу и пользователю. Я вот сомневаюсь на счет ключей и связанных таблиц. Помогите плиз.

Код: plaintext
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 */;

...
Рейтинг: 0 / 0
10.03.2010, 15:24
    #36511909
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по проектированию и ключам
авторК сообщению приложен файл. Размер - 26KbУжас.
--------------------------------------------------
Call off your program if you can
...
Рейтинг: 0 / 0
10.03.2010, 16:17
    #36512072
voffka-mc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по проектированию и ключам
Rin@tУжас.

Я догадывался. :( А ужас только в ключах, или вообще структура базы неправильна?
...
Рейтинг: 0 / 0
10.03.2010, 16:23
    #36512088
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по проектированию и ключам
> Здравствуйте.

И вам не хворать.

> Создаю примитивную CRM систему для своего офиса

Возьмите любую из готовых open source реализаций, сэкономите время себе и окружающим.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по проектированию и ключам / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]