Проектирование базы данных центра по продаже автомобилей

  • Вид работы:
    Отчет по практике
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    165,35 Кб
  • Опубликовано:
    2015-12-11
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование базы данных центра по продаже автомобилей














Отчет по практике

Проектирование базы данных центра по продаже автомобилей


Введение

В рамках выполнения практики необходимо разработать 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)

E-mail

Электронный адрес

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)

 

Поле

Описание поля

Тип данных

idType(PK)

Идентификационный номер

INT

Type

Тип автомобилей

VARCHAR(45)

DoorNum

Кол-во дверей

INT

 

Поле

Описание поля

Тип данных

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:М

. Описание структуры БД

Модель базы данных

По имеющимся описаниям сущностей и связей в редакторе 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)JOIN mydb2. VehicleType ON Car. VehicleType_idType = VehicleType.idType)JOIN mydb2. Condition ON Car. Condition_Damaged = Condition. Damaged

) SELECT mydb2. Customer. Login, mydb2. Customer. Passwd FROM mydb2. Customer

) INSERT INTO `mydb2`.`Customer` (`idCustomer`, `Name`, `Surname`, `E-mail`, `Adress`, `PhoneNum`, `Login`, `Passwd`)(NULL, '$c1', '$c2', '$c3', NULL, '$c4', '$c5', '$c6');

) DELETE FROM mydb2. Car WHERE Car.idCar = $data['idCar']

3. Описание структуры и функционирования сайта

Начальная страница авторизации, если пользователь не авторизован, он не может зайти на другие страницы кроме регистрации

Страница регистрации


Главная функциональная страница сайта, с нее осуществляется доступ на все остальные страницы. Таблица автомобилей появляется после нажатия на кнопку «Просмотреть базу автомобилей»

Главная страница после нажатия на кнопку «Добавить в базу»

Страница обратной связи


Страница About

. Описание основной страницы

Основная страница позволяет осуществлять просмотр, поиск, редактирование (добавление и удаление), а также переадресация на страницы обратной связи, информации о сайте и выходить из учетной записи

Просмотр базы

Удаление из базы производится посредством установки галочки напротив нужного объекта и нажатия кнопки «Удалить выбранные объекты».

Добавление в базу

Поиск по базе производится после ввода символов в запрос поиска.

Заключение

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

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


Приложение

SQL-описание:

CREATE SCHEMA `mydb2`;`mydb2`;

- -

Table `mydb2`.`Customer`

-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,KEY (`idCustomer`))= InnoDB;

-

Table `mydb2`.`Order`

-TABLE IF NOT EXISTS `mydb2`.`Order` (

`idOrder` INT NOT NULL,

`Date` DATE NULL,

`Sum` VARCHAR(45) NULL,

`Customer_idCustomer` INT NULL,KEY (`idOrder`),`fk_Order_Customer1_idx` (`Customer_idCustomer` ASC),`fk_Order_Customer1`KEY (`Customer_idCustomer`)`mydb2`.`Customer` (`idCustomer`)

)= InnoDB;

-

Table `mydb2`.`Brand`

-TABLE `mydb2`.`Brand` (

`BrandName` VARCHAR(45) NOT NULL,

`Country` VARCHAR(45) NULL,KEY (`BrandName`))= InnoDB;

-

Table `mydb2`.`Condition`

-TABLE `mydb2`.`Condition` (

`Damaged` VARCHAR(3) NOT NULL,

`Mileage` VARCHAR(45) NULL,KEY (`Damaged`))= InnoDB;

- -

Table `mydb2`.`Engine`

-TABLE `mydb2`.`Engine` (

`idEngine` INT NOT NULL AUTO_INCREMENT,

`EngineType` VARCHAR(3) NULL,

`CubicCapacity` INT NOT NULL,

`Horsepower` INT NULL,

`FuelType` VARCHAR(45) NULL,KEY (`idEngine`))= InnoDB;

-

Table `mydb2`.`VehicleType`

-TABLE `mydb2`.`VehicleType` (

`idType` INT NOT NULL AUTO_INCREMENT,

`Type` VARCHAR(45) NOT NULL,

`DoorNum` INT NULL,KEY (`idType`))= InnoDB;

-

Table `mydb2`.`Car`

-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,KEY (`idCar`),`fk_Car_Order1_idx` (`Order_idOrder` ASC),`fk_Car_Brand1_idx` (`Brand_BrandName` ASC),`fk_Car_Condition1_idx` (`Condition_Damaged` ASC),`fk_Car_Engine1_idx` (`Engine_idEngine` ASC),`fk_Car_VehicleType1_idx` (`VehicleType_idType` ASC),`fk_Car_Order1`KEY (`Order_idOrder`)`mydb2`.`Order` (`idOrder`)

,`fk_Car_Brand1`KEY (`Brand_BrandName`)`mydb2`.`Brand` (`BrandName`)

,`fk_Car_Condition1`KEY (`Condition_Damaged`)`mydb2`.`Condition` (`Damaged`)

,`fk_Car_Engine1`KEY (`Engine_idEngine`)`mydb2`.`Engine` (`idEngine`)

,`fk_Car_VehicleType1`KEY (`VehicleType_idType`)`mydb2`.`VehicleType` (`idType`)

)= InnoDB;

Главная:

<? php_start();

?>

<html>

<head>

<title>Главная</title>

</head>

<body>

<form method= «POST»>

<br>

<center><input type= «text» name= «search» size= «50» placeholder= «Поиск по базе»></center>

<input type= «submit» name= «show» value= «Просмотреть базу автомобилей»><br>

<input type= «submit» name= «del» value= «Удалить выбранные объекты»><br>

<input type= «submit» name= «add» value= «Добавить в базу»><br>

<p align= «right»><input type= «submit» name= «os» value= «Обратная связь»><br>

<input type= «submit» name= «about» value= «О сайте»><br>

<input type= «submit» name= «exit» value= «Выход»><br>

</p><center>


<? php(empty ($_SESSION['login']))

{'<script>location.replace («/denwer/aut.php»); </script>'; exit;();

}

$action1=$_POST['show'];($action1== «Просмотреть базу автомобилей»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

/* создать соединение */

$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);

/* Осуществляем определенные операции с СУБД */

$qr_result = mysql_query («select * from ((mydb2. Car inner join mydb2. Engine on Car. Engine_idEngine = Engine.idEngine)join mydb2. VehicleType on Car. VehicleType_idType = VehicleType.idType)join mydb2. Condition on Car. Condition_Damaged = Condition. Damaged») or die (mysql_error());

echo '<table border= «1»>';'<thead>';'<tr>';'<th></th>';'<th>ID</th>';'<th>Марка</th>';'<th>Модель</th>';'<th>Тип КПП</th>';'<th>Объем двигателя</th>';'<th>Тип кузова</th>';'<th>Цвет</th>';'<th>Номер заказа</th>';'<th>Повреждения</th>';'</tr>';'</thead>';'<tbody>';

($data = mysql_fetch_array ($qr_result))

{'<tr>';'<td><input type= «checkbox» name= «check1» value= «off»/></td>';'<td>'. $data['idCar']. '</td>';'<td>'. $data ['Brand_BrandName']. '</td>';'<td>'. $data['Model']. '</td>';'<td>'. $data['Gearbox']. '</td>';'<td>'. $data['CubicCapacity']. '</td>';'<td>'. $data['Type']. '</td>';'<td>'. $data['Colour']. '</td>';'<td>'. $data ['Order_idOrder']. '</td>';'<td>'. $data['Damaged']. '</td>';'</tr>';

}


echo '</tbody>';'</table>';

_CLOSE ($connect_to_db);

}

$action2 = $_POST['del'];

$action3 = $_POST['add'];

if ($action2 == «Удалить выбранный объект»)

{($_POST['check1'] == 'on')

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

/* создать соединение */

$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);

/* Осуществляем определенные операции с СУБД */

mysql_close ($connect_to_db);

}echo «Не выбран объект для удаления»;

}

($action3 == «Добавить в базу»)

{'<p align = «left»><input type= «text» name= «mark» size= «50» placeholder= «Марка»><br>';'<input type= «text» name= «model» size= «50» placeholder= «Модель»><br>';'<input type= «text» name= «gb» size= «50» placeholder= «Тип КПП»><br>';'<input type= «text» name= «cc» size= «50» placeholder= «Объем двигателя»><br>';'<input type= «text» name= «body» size= «50» placeholder= «Тип кузова»><br>';'<input type= «text» name= «colour» size= «50» placeholder= «Цвет»><br>';'<input type= «text» name= «cond» size= «50» placeholder= «Повреждения»><br>';'<input type= «submit» name= «add2» value= «Добавить»>';

$w1 = $_POST['mark'];

$w2 = $_POST['model'];

$w3 = $_POST['gb'];

$w4 = $_POST['cc'];

$w5 = $_POST['body'];

$w6 = $_POST['colour'];

$w7 = $_POST['cond'];

$add1= $_POST['add2'];($add1 == «Добавить»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

/* создать соединение */

$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);

/* Осуществляем определенные операции с СУБД */

$qr2 = mysql_query («incert into mydb2. Condition (Damaged, Mileage) values ('$w7', NULL)»);

if ($qr2 == true)

{«Автомобиль успешно добавлен в базу»;

}_close ($connect_to_db);

}

}

$act4 = $_POST['os'];($act4 == «Обратная связь»)

{'<script>location.replace («/denwer/os.php»);</script>'; exit;();

}

$act5 = $_POST['exit'];($act5 == «Выход»)

{($_SESSION['login']);'<script>location.replace («/denwer/aut.php»);</script>'; exit;();

}

$d2 = $_POST['about'];($d2 == «О сайте»)

{'<script>location.replace («/denwer/about.php»);</script>'; exit;

exit();

}

?>

</form>

</body>

</html>

Авторизация:

<? php_start();

?>

<html>

<head>

<title>Авторизация</title>

</head>

<body>

<form method= «POST»>

<br>

</br>

Логин<br>

<p>

<input type= «text» name= «login» size= «20»><br>

<p>

Пароль<br>

<p>

<input type= «password» name= «passwd» size= «20»><br>

<p>

<input type= «submit» name= «enter» value= «Вход»>

<input type= «submit» name= «reg» value= «Регистрация»><br>

<? php

$action1 = $_POST['enter'];

$action2 = $_POST['reg'];($action1 == «Вход»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

/* создать соединение */

$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);

$query1 = mysql_query («select mydb2. Customer. Login, mydb2. Customer. Passwd FROM mydb2. Customer»);($t=mysql_fetch_array($query1))

{($t['Login']==$_POST['login'] AND $t['Passwd']==md5 ($_POST['passwd']))

{

$_SESSION['login']=$_POST['login'];'<script>location.replace («/denwer/start.php»);</script>'; exit;

exit();

}

}«Ошибка входа: неверный логин или пароль»;

mysql_close ($connect_to_db);

}

($action2 == «Регистрация»)

{'<script>location.replace («/denwer/reg.php»);</script>'; exit;

exit();

}

?>

</form>

</body>

</html>

Регистрация:

<html>

<head>

<title>Регистрация</title>

</head>

<body>

<form method= «POST»>

<center>

<br>

<table border= «1»>

<thead>

<tr>

<th>Логин</th>

<th><input type= «text» name= «login» size= «35»></th>

</tr>

<tr>

<th>Пароль</th>

<th><input type= «text» name= «passwd» size= «35»></th>

</tr>

<tr>

<th>Имя</th>

<th><input type= «text» name= «name1» size= «35»></th>

</tr>

<tr>

<th>Фамилия</th>

<th><input type= «text» name= «surname» size= «35»></th>

</tr>

<tr>

<th>Email</th>

<th><input type= «text» name= «email» size= «35»></th>

</tr>

<tr>

<th>Телефон</th>

<th><input type= «text» name= «phonenum» size= «35»></th>

</tr>

</thead>

</tbody>

</table>

</br>

<input type= «submit» name= «finish» value= «Зарегестрироваться»>

<input type= «submit» name= «back» value= «Назад»>

<? php

$act1 = $_POST['finish'];

$act2 = $_POST['back'];($act1 == «Зарегестрироваться»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

/* создать соединение */

$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);

$c1 = $_POST['name1'];

$c2 = $_POST['surname'];

$c3 = $_POST['email'];

$c4 = $_POST['phonenum'];

$c5 = $_POST['login'];

$c6 = md5 ($_POST['passwd']);

$q2 = mysql_query («INSERT INTO `mydb2`.`Customer` (`idCustomer`, `Name`, `Surname`, `E-mail`, `Adress`, `PhoneNum`, `Login`, `Passwd`)(NULL, '$c1', '$c2', '$c3', NULL, '$c4', '$c5', '$c6');»);

if ($q2 == true)

{«Регистрация пройдена успешно»;

}

_close ($connect_to_db);

}($act2 == «Назад»)

{'<script>location.replace («/denwer/aut.php»);</script>'; exit;

exit();

}

?>

</form>

</body>

</html>

Обратная связь:

<? php_start();

?>

<html>

<head>

<title>Обратная связь</title>

</head>

<body>

<form method= «POST»>

Имя<br>

<input type= «text» name= «name2» size= «30»><br>

Телефон<br>

<input type= «text» name= «phonenum» size= «30»><br><br>

<input type= «text» name= «email» size= «30»><br>

Текст сообщения<br>

<TEXTAREA name= «message» wrap= «physical» cols= «50» rows= «10»>

</TEXTAREA><br>

<input type= «submit» name= «ok» value= «Отправить»>

<input type= «submit» name= «back» value= «На главную»>

<? php(empty ($_SESSION['login']))

{'<script>location.replace («/denwer/aut.php»); </script>'; exit;();

}

$act3 = $_POST['ok'];($act3 == «Отправить»)

{

$nam = $_POST['name2'];

$ph = $_POST['phonenum'];

$email = $_POST['email'];

$message = $_POST['message'];

$head = «Content-type: text/html; charset=windows-1251 \r\n»;

$head.= «From: \r\n»;

$theme = «Тема письма»;

$msg = «Имя: $nam<br/>: $email <br/>

Телефон: $ph <br/>

Сообщение: <br/>$message»;

$mail_to = «ornik2010@gmail.com»;($mail_to, $theme, $msg, $head);

echo «Сообщение отправлено»;

}

$act6 = $_POST['back'];

if ($act6== «На главную»)

{'<script>location.replace («/denwer/start.php»);</script>'; exit;

exit();

}

?>

</form>

</body>

</html>

About:

<? php_start();

?>

<html>

<head>

<title></title>

</head>

<body>

<form method= «POST»>

<br>

<center>

Автор и разработчик сайта<br>

<p>

студент 273 группы факультета Бизнес-Информатики<br>

<p>

Орлов Н.

</center>

<? php(empty ($_SESSION['login']))

{'<script>location.replace («/denwer/aut.php»); </script>'; exit;

exit();

}

?>

</form>

</body>

</html>

Похожие работы на - Проектирование базы данных центра по продаже автомобилей

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!