· 7 years ago · Sep 07, 2018, 06:46 AM
1-- отделы имеют древовидную Ñтруктуру
2CREATE TABLE IF NOT EXISTS `departments` (
3 `id` int(11) NOT NULL AUTO_INCREMENT,
4 `pid` int(11) DEFAULT NULL,
5 `lavel` int(11) NOT NULL,
6 `name` varchar(255) NOT NULL,
7 `lefts` int(11) NOT NULL,
8 `rights` int(11) NOT NULL,
9 PRIMARY KEY (`id`)
10);
11
12-- вÑтавка Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°:
13INSERT INTO `departments` (`id`, `pid`, `lavel`, `name`, `lefts`, `rights`)
14VALUES
15 (1, 0, 1, 'ТехничеÑкий отдел', 1, 4),
16 (2, 0, 1, 'ФинанÑово-ÑкономичеÑкий отдел', 5, 6),
17 (3, 1, 2, 'Подотдел техничеÑкого отдела', 2, 3)
18
19-- на отдел определенное количеÑтво должноÑтей(штатное раÑпиÑание)
20CREATE TABLE IF NOT EXISTS `staff` (
21 `id` int(11) NOT NULL AUTO_INCREMENT,
22 `department_id` int(11) DEFAULT NULL,
23 `position_id` int(11) DEFAULT NULL
24);
25
26-- вÑтавка Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°:
27-- Ñоздаю Ð´Ð»Ñ ÐŸÐ¾Ð´Ð¾Ñ‚Ð´ÐµÐ»Ð° техничеÑкого отдела рабочее меÑто Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ должноÑтью(какой не Ñуть)
28INSERT INTO `staff` (`id`, `department_id`, `position_id`)
29VALUES (1, 3, 'id какой-нибудь должноÑти')
30-- Ñоздаю Ð´Ð»Ñ Ð¤Ð¸Ð½Ð°Ð½Ñово-ÑкономичеÑкого отдела рабочее меÑто Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ должноÑтью(какой не Ñуть)
31INSERT INTO `staff` (`id`, `department_id`, `position_id`)
32VALUES (2, 2, 'id какой-нибудь должноÑти')
33
34-- таблица работников:
35-- каждый работник закреплен за определенной Ñтавкой
36CREATE TABLE IF NOT EXISTS `people` (
37 `id` int(11) NOT NULL AUTO_INCREMENT,
38 `staff_id` int(11) DEFAULT NULL,
39 `lastname` varchar(80) NOT NULL,
40 `firstname` varchar(80) NOT NULL,
41 `fathersname` varchar(80) NOT NULL,
42 `sex` varchar(1) NOT NULL,
43 PRIMARY KEY (`id`)
44);
45
46-- вÑтавка Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°:
47-- принимаю работника в ТехничеÑкий отдел
48INSERT INTO `people` (`id`, `staff_id`, `lastname`, `firstname`, `sex`)
49VALUES (1, 1, 'Ivanov', 'Ivanov', 'Ivanov', 'm')
50-- принимаю работника в 'ФинанÑово-ÑкономичеÑкий отдел
51INSERT INTO `people` (`id`, `staff_id`, `lastname`, `firstname`, `sex`)
52VALUES (2, 2, 'Petrov', 'Petrov', 'Petrov', 'm')