|
@@ -32,7 +32,6 @@
|
|
|
|
|
|
<div style="page-break-after: always;"></div>
|
|
|
|
|
|
-test
|
|
|
|
|
|
## Содержание
|
|
|
|
|
@@ -40,6 +39,9 @@ test
|
|
|
* [Диаграмма вариантов использования](#диаграмма-вариантов-использования)
|
|
|
* [Спецификация вариантов использования (прецедентов)](#спецификация-вариантов-использования-прецедентов)
|
|
|
* [Диаграмма состояний](#диаграмма-состояний)
|
|
|
+* [ER-диаграмма](#er-диаграмма)
|
|
|
+* [Словарь данных](#словарь-данных)
|
|
|
+* [База данных SQL](#база-данных-sql)
|
|
|
|
|
|
### Описание предметной области
|
|
|
* Предполагается, что в системе автосалона будет 4 роли пользователей: клиенты, продавцы-консультанты, подборщики, администраторы. Авторизация в системе производится по телефону и паролю. Клиенты могут зарегистрироваться в системе, указав ФИО, телефон, пароль, дату рождения.
|
|
@@ -94,4 +96,209 @@ test
|
|
|
|
|
|
![img21](./img/21.png)
|
|
|
![img22](./img/22.png)
|
|
|
-![img23](./img/23.png)
|
|
|
+![img23](./img/23.png)
|
|
|
+
|
|
|
+### ER-Диаграмма
|
|
|
+![ER-Диаграмма](./img/ER-Диаграмма.png)
|
|
|
+
|
|
|
+### Словарь данных
|
|
|
+
|
|
|
+* Member (Пользователь)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | fullName | varchar(255) | Y | Полное ФИО (строка), обязательное поле
|
|
|
+ | phoneNumber | varchar(12) | Y | Телефон
|
|
|
+ | password | varchar(40) | Y | Пароль пользователя
|
|
|
+ | postAdress | varchar(255) | Y | Адрес доставки
|
|
|
+FK | roleId | int | Y | Ссылка на словарь **Role**
|
|
|
+
|
|
|
+* Role (Роль)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(50) | Y | Роль
|
|
|
+
|
|
|
+* Payment (Оплата)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | paymentDate | Date | Y | Дата оплаты
|
|
|
+ | description | varchar(255) | Y | Описание заказа
|
|
|
+ | amountPaid | int(15) | Y | Оплаченная сумма
|
|
|
+
|
|
|
+* Order (Заказ автомобиля пользователем)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | transactionDate | Date | Y | Дата транзакции
|
|
|
+FK| memberId | int | Y | Ссылка на словарь **Member**
|
|
|
+FK| carId | int | Y | Ссылка на словарь **Car**
|
|
|
+FK| paymentId | int | Y | Ссылка на словарь **Payment**
|
|
|
+
|
|
|
+* Car (Автомобиль)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+FK| brandId | int | Y | Ссылка на словарь **Brand**
|
|
|
+FK| modelId | int | Y | Ссылка на словарь **Model**
|
|
|
+FK| generationId | int | Y | Ссылка на словарь **Generation**
|
|
|
+ | dateOfIssue | Date | Y | Дата выпуска автомобиля
|
|
|
+ | engineCap | decimal(2,1) | | Объём двигателя (1-2 знака перед запятой, 1 знак после запятой)
|
|
|
+FK| engineId | int | Y | Тип двигателя с ссылкой на словарь **Engine**
|
|
|
+ | cost | int(15) | Y | Цена автомобиля
|
|
|
+FK| colorId | int | Y | Цвет с ссылкой на словарь **Color**
|
|
|
+FK| transmissionId | int | Y | Коробка передач с ссылкой на словарь **Transmission**
|
|
|
+ | photo | varchar(255) | | Фотография автомобиля (Обязательно, хотя бы 1)
|
|
|
+ | description | varchar(255) | | Описание автомобиля
|
|
|
+FK| categoryId | int | Y | Категория с ссылкой на словарь **Category**
|
|
|
+
|
|
|
+* Brand (Марка)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(100) | Y | Марка
|
|
|
+
|
|
|
+* Model (Модель)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(100) | Y | Модель
|
|
|
+
|
|
|
+* Generation (Поколение)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(100) | Y | Поколение
|
|
|
+
|
|
|
+* Engine (Тип двигателя)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(30) | Y | Тип двигателя
|
|
|
+
|
|
|
+* Color (Цвет)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(80) | Y | Цвет
|
|
|
+
|
|
|
+* Transmission (Тип)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(30) | Y | Тип трансмиссии
|
|
|
+
|
|
|
+* Category (Категория)
|
|
|
+
|
|
|
+Key | Field Name | Data Type/Field Size | Required? | Notes
|
|
|
+:-:|----|-----|:-:|---
|
|
|
+PK | Id | INT | Y |
|
|
|
+ | titile | varchar(60) | Y | В какой категории продается авто
|
|
|
+
|
|
|
+### База данных SQL
|
|
|
+![Базы данных](/img/BD.png)
|
|
|
+#### Скрипт
|
|
|
+```
|
|
|
+CREATE TABLE `Role` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(50) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Member` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `phoneNumber` varchar(12) DEFAULT NULL,
|
|
|
+ `fullName` varchar(255) DEFAULT NULL,
|
|
|
+ `password` varchar(40) DEFAULT NULL,
|
|
|
+ `postAdress` varchar(255) DEFAULT NULL,
|
|
|
+ `roleId` INT,
|
|
|
+ FOREIGN KEY(`roleId`) REFERENCES `ROLE` (`Id`)
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Brand` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(100) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Model` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(100) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Generation` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCR EMENT PRIMARY KEY,
|
|
|
+ `title` varchar(100) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Engine` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(30) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Color` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(80) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Transmission` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(30) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Category` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `title` varchar(60) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Car` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `brandId` INT,
|
|
|
+ FOREIGN KEY(`brandId`) REFERENCES `Brand` (`Id`),
|
|
|
+ `modelId` INT,
|
|
|
+ FOREIGN KEY(`modelId`) REFERENCES `Model` (`Id`),
|
|
|
+ `generationId` INT,
|
|
|
+ FOREIGN KEY(`generationId`) REFERENCES `Generation` (`Id`),
|
|
|
+ `dateOfIssue` Date DEFAULT NULL,
|
|
|
+ `engineCap` Decimal(2,1) DEFAULT NULL,
|
|
|
+ `engineId` INT,
|
|
|
+ FOREIGN KEY(`engineId`) REFERENCES `Engine` (`Id`),
|
|
|
+ `cost` int(15) DEFAULT NULL,
|
|
|
+ `colorId` INT,
|
|
|
+ FOREIGN KEY(`colorId`) REFERENCES `Color` (`Id`),
|
|
|
+ `transmissionId` INT,
|
|
|
+ FOREIGN KEY(`transmissionId`) REFERENCES `Transmission` (`Id`),
|
|
|
+ `photo` varchar(255),
|
|
|
+ `description` varchar(255),
|
|
|
+ `categoryId` INT,
|
|
|
+ FOREIGN KEY(`categoryId`) REFERENCES `Category` (`Id`)
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Payment` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `paymentDate` Date DEFAULT NULL,
|
|
|
+ `description` varchar(255) DEFAULT NULL,
|
|
|
+ `amountPaid` INT(15) DEFAULT NULL
|
|
|
+)
|
|
|
+
|
|
|
+CREATE TABLE `Order` (
|
|
|
+ `Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `transactionDate` Date DEFAULT NULL,
|
|
|
+ `memberId` INT,
|
|
|
+ FOREIGN KEY(`memberId`) REFERENCES `Member` (`Id`),
|
|
|
+ `carId` INT,
|
|
|
+ FOREIGN KEY(`carId`) REFERENCES `Car` (`Id`),
|
|
|
+ `paymentId` INT,
|
|
|
+ FOREIGN KEY(`paymentId`) REFERENCES `Payment` (`Id`)
|
|
|
+)
|
|
|
+```
|