Поле
|
Описание поля
|
Тип данных
|
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>