Проектирование базы данных центра по продаже автомобилей
Разработка запросов, позволяющих осуществить поиск и вывод необходимой информации для пользователя; На начальный момент база содержала семь пустых таблиц, что подтверждали соответствующие запросы. Анализ предметной области (выявление сущностей, связей, модели работы магазина и ее предпосылок); Brand-Car — под брендом может выпускаться неограниченное количество разных автомобилей, связь 1: М. Для… Читать ещё >
Проектирование базы данных центра по продаже автомобилей (реферат, курсовая, диплом, контрольная)
Отчет по практике
Проектирование базы данных центра по продаже автомобилей
В рамках выполнения практики необходимо разработать WEB-интерфейс под базу центра по продаже автомобилей. Таким образом, целью работы было спроектировать базу данных, удобную для автоматизации учета транзакций и учета поведения пользователей и сделать возможным ее редактирование через интернет; база должна предоставлять пользователю наиболее полные данные об имеющихся в наличии автомобилях, отвечать специфике центра по продаже автомобилей в целом. Так же в рамках учебной работы база не перегружалась обилием данных.
Были поставлены следующие задачи:
· Анализ предметной области (выявление сущностей, связей, модели работы магазина и ее предпосылок);
· Построение модели базы данных;
· Разработка запросов, позволяющих осуществить поиск и вывод необходимой информации для пользователя;
· Разработка запросов, позволяющих добавлять, удалять и редактировать информацию;
· Разработка WEB-интерфейса для данной БД
1. Описание предметной области
пользователь запрос продажа автомобиль
Описание модели работы центра по продажам и ее предпосылок
В центре по продажам существует каталог товаров — автомобилей; каждая модель может быть представлена в одном или нескольких экземплярах (одинаковых или различных) Покупатель регистрируется на сайте и делает заказ, после чего ему рассчитывается сумма заказа и заказанные автомобили удаляются из базы.
Описание сущностей
PK — Primary Key; FK — Foreign Key
Car
Поле | Описание поля | Тип данных | |
idCar (PK) | Идентификационный номер | INT | |
Model | Модель | VARCHAR (45) | |
Gearbox | Тип КПП | VARCHAR (2) | |
Colour | Цвет | VARCHAR (45) | |
Order_idOrder (FK) | Связующее поле | INT | |
Brand_BrandName (FK) | Связующее поле | VARCHAR (45) | |
VehicleType_idType (FK) | Связующее поле | VARCHAR (45) | |
Engine_idEngine (FK) | Связующее поле | VARCHAR (3) | |
Condition_Damaged (FK) | Связующее поле | VARCHAR (3) | |
Brand
Поле | Описание поля | Тип данных | |
BrandName (PK) | Название | VARCHAR (45) | |
Country | Страна-производитель | VARCHAR (45) | |
Customer
Поле | Описание поля | Тип данных | |
idCustomer | Идентификационный номер | INT | |
Name | Имя клиента | VARCHAR (45) | |
Surname | Фамилия клиента | VARCHAR (45) | |
Электронный адрес | VARCHAR (45) | ||
Adress | Адрес доставки | VARCHAR (45) | |
Phone | Телефон | VARCHAR (45) | |
Login | Логин | VARCHAR (45) | |
Passwd | Пароль | VARCHAR (45) | |
Condition
Поле | Описание поля | Тип данных | |
Damaged (PK) | Индикатор поврежденных автомобилей | VARCHAR (3) | |
Mileage | Пробег | VARCHAR (45) | |
Engine
Поле | Описание поля | Тип данных | |
idEngine | Идентификационный номер | INT | |
EngineType (PK) | Тип двигателя | VARCHAR (3) | |
CubicCapacity | Объем двигателя | INT | |
Horsepower | Мощность двигателя | INT | |
FuelType | Тип топлива | VARCHAR (45) | |
VehicleType
Поле | Описание поля | Тип данных | |
idType (PK) | Идентификационный номер | INT | |
Type | Тип автомобилей | VARCHAR (45) | |
DoorNum | Кол-во дверей | INT | |
Order
Поле | Описание поля | Тип данных | |
IdOrder (PK) | Идентификационный номер | INT | |
Date | Дата покупки | DATE | |
Sum | Сумма к оплате | VARCHAR (45) | |
Customer_idCustomer (FK) | Связующее поле | VARCHAR (45) | |
Описание связей между сущностями
Brand-Car — под брендом может выпускаться неограниченное количество разных автомобилей, связь 1: М
Customer-Order — от одного покупателя может поступать неограниченное кол-во заказов, связь 1: М
Order-Car — один заказ может содержать несколько машин, связь 1: М
VehicleType-Car — несколько машин могут быть одинакового типа, связь 1: М
Condition-Car — несколько машин могут быть одинакового состояния, связь 1: М
Engine-Car — несколько машин могут иметь одинаковые двигатели, связь 1: М
2. Описание структуры БД
Модель базы данных
По имеющимся описаниям сущностей и связей в редакторе MySQL Workbench была создана модель, проиллюстрированная нижеследующей диаграммой:
Погружение в Mysql Workbench
Создание базы
Для создания базы было установлено соединение по адресу 127.0.0.1 и именем пользователя root@localhost
На начальный момент база содержала семь пустых таблиц, что подтверждали соответствующие запросы
Работа с запросами к базе
1) SELECT * FROM ((mydb2. Car inner join mydb2. Engine on Car. Engine_idEngine = Engine. idEngine)
INNER JOIN mydb2. VehicleType ON Car. VehicleType_idType = VehicleType. idType)
INNER JOIN mydb2. Condition ON Car. Condition_Damaged = Condition. Damaged
2) SELECT mydb2. Customer. Login, mydb2. Customer. Passwd FROM mydb2. Customer
3) INSERT INTO `mydb2`.`Customer` (`idCustomer`, `Name`, `Surname`, `E-mail`, `Adress`, `PhoneNum`, `Login`, `Passwd`)
VALUES (NULL, '$c1', '$c2', '$c3', NULL, '$c4', '$c5', '$c6');
4) DELETE FROM mydb2. Car WHERE Car. idCar = $data['idCar']
3. Описание структуры и функционирования сайта
Начальная страница авторизации, если пользователь не авторизован, он не может зайти на другие страницы кроме регистрации
Страница регистрации
Главная функциональная страница сайта, с нее осуществляется доступ на все остальные страницы. Таблица автомобилей появляется после нажатия на кнопку «Просмотреть базу автомобилей»
Главная страница после нажатия на кнопку «Добавить в базу»
Страница обратной связи
Страница About
4. Описание основной страницы
Основная страница позволяет осуществлять просмотр, поиск, редактирование (добавление и удаление), а также переадресация на страницы обратной связи, информации о сайте и выходить из учетной записи
Просмотр базы Удаление из базы производится посредством установки галочки напротив нужного объекта и нажатия кнопки «Удалить выбранные объекты».
Добавление в базу Поиск по базе производится после ввода символов в запрос поиска.
Заключение
В результате прохождения учебной практики был создан сайт, способный выполнять все поставленные задачи, а именно просматривать и редактировать базу данных, загруженную на локальный сервер.
Несомненно, для реального использования необходимо более детально и реалистично проработать модель работы центра по продаже, учесть в ней возможные риски, динамику, взаимодействие поставщиками и т. д.
Приложение
SQL-описание:
CREATE SCHEMA `mydb2`;
USE `mydb2`;
— ;
— Table `mydb2`.`Customer`
— ;
CREATE TABLE `mydb2`.`Customer` (
`idCustomer` INT NOT NULL AUTO_INCREMENT,
`Name` VARCHAR (45) NOT NULL,
`Surname` VARCHAR (45) NOT NULL,
`E-mail` VARCHAR (45) NOT NULL,
`Adress` VARCHAR (45) NULL,
`PhoneNum` VARCHAR (45) NOT NULL,
`Login` VARCHAR (45) NOT NULL,
`Passwd` VARCHAR (45) NOT NULL,
PRIMARY KEY (`idCustomer`))
ENGINE = InnoDB;
— ;
— Table `mydb2`.`Order`
— ;
CREATE TABLE IF NOT EXISTS `mydb2`.`Order` (
`idOrder` INT NOT NULL,
`Date` DATE NULL,
`Sum` VARCHAR (45) NULL,
`Customer_idCustomer` INT NULL,
PRIMARY KEY (`idOrder`),
INDEX `fk_Order_Customer1_idx` (`Customer_idCustomer` ASC),
CONSTRAINT `fk_Order_Customer1`
FOREIGN KEY (`Customer_idCustomer`)
REFERENCES `mydb2`.`Customer` (`idCustomer`)
)
ENGINE = InnoDB;
— ;
— Table `mydb2`.`Brand`
— ;
CREATE TABLE `mydb2`.`Brand` (
`BrandName` VARCHAR (45) NOT NULL,
`Country` VARCHAR (45) NULL,
PRIMARY KEY (`BrandName`))
ENGINE = InnoDB;
— ;
— Table `mydb2`.`Condition`
— ;
CREATE TABLE `mydb2`.`Condition` (
`Damaged` VARCHAR (3) NOT NULL,
`Mileage` VARCHAR (45) NULL,
PRIMARY KEY (`Damaged`))
ENGINE = InnoDB;
— ;
— Table `mydb2`.`Engine`
— ;
CREATE TABLE `mydb2`.`Engine` (
`idEngine` INT NOT NULL AUTO_INCREMENT,
`EngineType` VARCHAR (3) NULL,
`CubicCapacity` INT NOT NULL,
`Horsepower` INT NULL,
`FuelType` VARCHAR (45) NULL,
PRIMARY KEY (`idEngine`))
ENGINE = InnoDB;
— ;
— Table `mydb2`.`VehicleType`
— ;
CREATE TABLE `mydb2`.`VehicleType` (
`idType` INT NOT NULL AUTO_INCREMENT,
`Type` VARCHAR (45) NOT NULL,
`DoorNum` INT NULL,
PRIMARY KEY (`idType`))
ENGINE = InnoDB;
— ;
— Table `mydb2`.`Car`
— ;
CREATE TABLE `mydb2`.`Car` (
`idCar` INT NOT NULL AUTO_INCREMENT,
`Brand_BrandName` VARCHAR (45) NOT NULL,
`Model` VARCHAR (45) NOT NULL,
`Gearbox` VARCHAR (2) NOT NULL,
`Engine_idEngine` INT NOT NULL,
`VehicleType_idType` INT NOT NULL,
`Colour` VARCHAR (45) NOT NULL,
`Order_idOrder` INT NULL,
`Condition_Damaged` VARCHAR (3) NOT NULL,
PRIMARY KEY (`idCar`),
INDEX `fk_Car_Order1_idx` (`Order_idOrder` ASC),
INDEX `fk_Car_Brand1_idx` (`Brand_BrandName` ASC),
INDEX `fk_Car_Condition1_idx` (`Condition_Damaged` ASC),
INDEX `fk_Car_Engine1_idx` (`Engine_idEngine` ASC),
INDEX `fk_Car_VehicleType1_idx` (`VehicleType_idType` ASC),
CONSTRAINT `fk_Car_Order1`
FOREIGN KEY (`Order_idOrder`)
REFERENCES `mydb2`.`Order` (`idOrder`)
CONSTRAINT `fk_Car_Brand1`
FOREIGN KEY (`Brand_BrandName`)
REFERENCES `mydb2`.`Brand` (`BrandName`)
CONSTRAINT `fk_Car_Condition1`
FOREIGN KEY (`Condition_Damaged`)
REFERENCES `mydb2`.`Condition` (`Damaged`)
CONSTRAINT `fk_Car_Engine1`
FOREIGN KEY (`Engine_idEngine`)
REFERENCES `mydb2`.`Engine` (`idEngine`)
CONSTRAINT `fk_Car_VehicleType1`
FOREIGN KEY (`VehicleType_idType`)
REFERENCES `mydb2`.`VehicleType` (`idType`)
)
ENGINE = InnoDB;
Главная:
php
session_start ();
?>