Диплом: Автоматизация процесса внутрикорпоративного взаимодействия сотрудников компании ООО "Ситилинк"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
63
S | - Автор сообщения (РК)(FK)
S | -Текст сообщения
Документ
S | -Название файла (РК)
S | - Идентификатор подпроекта (РК)(FK)
S | - Автор документа(FK)
S | - Дата добавления
На основании приведенного выше списка сущностей с указанием
первичных и внешних ключей была построена концептуальная модель
предметной области (рис. 2.4).
64
Рис. 2.4 - Концептуальная модель предметной области
65
Необходимо построить таблицы, основываясь на концептуальной модели
базы данных. Правила перевода из логической модели данных в физическую
следующие:
объекты становятся таблицами в физической базе данных;
атрибуты становятся колонками (полями) в физической базе данных.
Для каждого атрибута выбирается свой тип данных;
уникальные идентификаторы становятся колонками, не допускающими
пустое значение. В физической базе данных они называются первичными ключами
.Таблица 2.4.
Таблица «Sotrudnik»
Название поля
Ключ
Типа данных
Размер
Примечание
Tabel_nomer
(PK)
Varchar
8
Family
Varchar
45
First_name
Varchar
45
Second_name
Varchar
45
Phone
Varchar
45
Login
FK
Varchar
45
dostup
FK
INT
Целое
Таблица 2.5.
Таблица «Login_password»
Название поля
Ключ
Типа данных
Размер
Примечание
Login
PK
Varchar
45
password
Varchar
45
Таблица 2.6.
Таблица «Dostup»
Название поля
Ключ
Типа данных
Размер
Примечание
66
Id
PK
INT
Целое
Name_dostup
Varchar
45
Таблица 2.7.
Таблица «Dolgnost»
Название поля
Ключ
Типа данных
Размер
Примечание
ID_dolgnost
PK
INT
Name_dolgnost
Varchar
45
Таблица 2.8.
Таблица «Proekt»
Название поля
Ключ
Типа данных
Размер
Примечание
ID_proekt
PK
INT
Name_proekt
Varchar
45
Sotrudnik_creat
FK
Varchar
8
Date_creat
Datetime
status
Boolean
Таблица 2.9.
Таблица «Podproekt»
Название поля
Ключ
Типа данных
Размер
Примечание
ID_pod_proekt
PK
INT
ID_proekt
PK FK
INT
Name_pod_proekt
Varchar
45
Date_begin
Datetime
Date_end
Datetime
status
Boolean
Таблица 2.10.
Таблица «sotrudnik_Pod_proekt»
Название поля
Ключ
Типа данных
Размер
Примечание
67
ID_pod_proekt
PK FK
INT
sotrudnik
PK FK
INT
Таблица 2.11.
Таблица «Document»
Название поля
Ключ
Типа данных
Размер
Примечание
ID_pod_proekt
PK FK
INT
Name_file
PK
INT
Avtor
Varchar
8
Date_add
Datetime
Таблица 2.11.
Таблица «Comment»
Название поля
Ключ
Типа данных
Размер
Примечание
ID_pod_proekt
PK FK
INT
Avtor
PK FK
Varchar
8
Date_add_coomment
PK
Datetime
Text_add_comment
Varchar
250
Физическая структура базы данных показана на рис. 2.5
68
Рис. 2.5 Физическая структура базы данных в MySQL
69
Переведем данную схему в формат базы данных MySQL.
-- -----------------------------------------------------
-- Schema citilink
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `citilink` ;
-- -----------------------------------------------------
-- Schema citilink
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `citilink` DEFAULT CHARACTER SET
cp1251 ;
USE `citilink` ;
-- -----------------------------------------------------
-- Table `citilink`.`dostup`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `citilink`.`dostup` ;
CREATE TABLE IF NOT EXISTS `citilink`.`dostup` (
`id_dostup` INT NOT NULL AUTO_INCREMENT,
`name_dostup` VARCHAR(45) NULL,
PRIMARY KEY (`id_dostup`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `citilink`.`login_password`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `citilink`.`login_password` ;
CREATE TABLE IF NOT EXISTS `citilink`.`login_password` (
`login` VARCHAR(45) NOT NULL,
`password_user` VARCHAR(45) NULL,
PRIMARY KEY (`login`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `citilink`.`dolgnost`
-- -----------------------------------------------------
70
DROP TABLE IF EXISTS `citilink`.`dolgnost` ;
CREATE TABLE IF NOT EXISTS `citilink`.`dolgnost` (
`id_dolgnost` INT NOT NULL AUTO_INCREMENT,
`name_dolgnost` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id_dolgnost`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `citilink`.`sotrudnik`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `citilink`.`sotrudnik` ;
CREATE TABLE IF NOT EXISTS `citilink`.`sotrudnik` (
`tabel_nomer` VARCHAR(8) NOT NULL,
`family` VARCHAR(45) NOT NULL,
`first_name` VARCHAR(45) NOT NULL,
`second_name` VARCHAR(45) NOT NULL,
`phone` VARCHAR(45) NOT NULL,
`login` VARCHAR(45) NULL,
`dostup` INT NULL,
`id_dolgnost` INT NULL,
PRIMARY KEY (`tabel_nomer`),
INDEX `1_idx` (`dostup` ASC) VISIBLE,
INDEX `2_idx` (`login` ASC) VISIBLE,
INDEX `15_idx` (`id_dolgnost` ASC) VISIBLE,
CONSTRAINT `1`
FOREIGN KEY (`dostup`)
REFERENCES `citilink`.`dostup` (`id_dostup`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `2`
FOREIGN KEY (`login`)
REFERENCES `citilink`.`login_password` (`login`)
ON DELETE CASCADE
71
ON UPDATE CASCADE,
CONSTRAINT `15`
FOREIGN KEY (`id_dolgnost`)
REFERENCES `citilink`.`dolgnost` (`id_dolgnost`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `citilink`.`proekt`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `citilink`.`proekt` ;
CREATE TABLE IF NOT EXISTS `citilink`.`proekt` (
`id_proekt` INT NOT NULL AUTO_INCREMENT,
`name_proekt` VARCHAR(250) NOT NULL,
`sotrudnik_creat` VARCHAR(8) NULL,
`date_creat` DATETIME NOT NULL,
`status` TINYINT NULL COMMENT '0 - в работе False\n1 - выполнен True',
PRIMARY KEY (`id_proekt`),
UNIQUE INDEX `name_proekt_UNIQUE` (`name_proekt` ASC) VISIBLE,
INDEX `13_idx` (`sotrudnik_creat` ASC) VISIBLE,
CONSTRAINT `13`
FOREIGN KEY (`sotrudnik_creat`)
REFERENCES `citilink`.`sotrudnik` (`tabel_nomer`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `citilink`.`pod_proekt`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `citilink`.`pod_proekt` ;
CREATE TABLE IF NOT EXISTS `citilink`.`pod_proekt` (
`id_proekt` INT NOT NULL,
72
`id_pod_proekt` INT NOT NULL AUTO_INCREMENT,
`name_pod_proekt` VARCHAR(250) NOT NULL,
`date_begin` DATETIME NULL,
`date_end` DATETIME NULL,
`status` TINYINT NULL COMMENT '0 - в работе False\n1 - выполнен True',
PRIMARY KEY (`id_pod_proekt`),
INDEX `1_idx` (`id_proekt` ASC) VISIBLE,
CONSTRAINT `14`
FOREIGN KEY (`id_proekt`)
REFERENCES `citilink`.`proekt` (`id_proekt`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `citilink`.`document`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `citilink`.`document` ;
CREATE TABLE IF NOT EXISTS `citilink`.`document` (
`name_file` VARCHAR(60) NOT NULL,
`id_pod_proekt` INT NOT NULL,
`avtor` VARCHAR(8) NULL,
`date_add` DATETIME NULL,
PRIMARY KEY (`name_file`, `id_pod_proekt`),
INDEX `3_idx` (`avtor` ASC) VISIBLE,
INDEX `47_idx` (`id_pod_proekt` ASC) VISIBLE,
CONSTRAINT `3`
FOREIGN KEY (`avtor`)
REFERENCES `citilink`.`sotrudnik` (`tabel_nomer`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `47`
FOREIGN KEY (`id_pod_proekt`)

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)