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

В рамках выполнения практики необходимо разработать WEB-интерфейс под базу центра по продаже автомобилей. Таким образом, целью работы было спроектировать базу данных, удобную для автоматизации учета транзакций и учета поведения пользователей и сделать возможным ее редактирование через интернет; база должна предоставлять пользователю наиболее полные данные об имеющихся в наличии автомобилях, отвечать специфике центра по продаже автомобилей в целом.

В рамках выполнения практики необходимо разработать WEB-интерфейс под базу центра по продаже автомобилей. Таким образом, целью работы было спроектировать базу данных, удобную для автоматизации учета транзакций и учета поведения пользователей и сделать возможным ее редактирование через интернет; база должна предоставлять пользователю наиболее полные данные об имеющихся в наличии автомобилях, отвечать специфике центра по продаже автомобилей в целом.

Введение

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

Были поставлены следующие задачи:

·        Анализ предметной области (выявление сущностей, связей, модели работы магазина и ее предпосылок);

·        Построение модели базы данных;

·        Разработка запросов, позволяющих осуществить поиск и вывод необходимой информации для пользователя;

·        Разработка запросов, позволяющих добавлять, удалять и редактировать информацию;

·        Разработка WEB-интерфейса для данной БД


1. Описание предметной области

пользователь запрос продажа автомобиль

Описание модели работы центра по продажам и ее предпосылок

В центре по продажам существует каталог товаров — автомобилей; каждая модель может быть представлена в одном или нескольких экземплярах (одинаковых или различных) Покупатель регистрируется на сайте и делает заказ, после чего ему рассчитывается сумма заказа и заказанные автомобили удаляются из базы.

Описание сущностей

PK — Primary Key; FK — Foreign Key

 

Car

Brand

 

Customer

 

Condition

 

Engine

 

 

Описание связей между сущностями

Brand-Car — под брендом может выпускаться неограниченное количество разных автомобилей, связь 1:М

Нужна работа? Есть решение!

Более 70 000 экспертов: преподавателей и доцентов вузов готовы помочь вам в написании работы прямо сейчас.

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

Скидка 100 рублей на первый заказ!

Акция для новых клиентов! Разместите заказ или сделайте расчет стоимости и получите 100 рублей. Деньги будут зачислены на счет в личном кабинете.

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

Работа с запросами к базе

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

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

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

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

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

Скидка 100 рублей на первый заказ!

Акция для новых клиентов! Разместите заказ или сделайте расчет стоимости и получите 100 рублей. Деньги будут зачислены на счет в личном кабинете.

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

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

Заключение

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

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

Приложение

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);

Закажите работу от 200 рублей

Если вам нужна помощь с работой, то рекомендуем обратиться к профессионалам. Более 70 000 экспертов готовы помочь вам прямо сейчас.

$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 rn»;

$head.= «From: rn»;

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

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

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

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

$mail_to = «[email protected]»;($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>

Средняя оценка 0 / 5. Количество оценок: 0

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

Научная статья по теме «Влияние сети интернет и социальных сетей на молодёжь (на примере студентов ЕГУ им. И.А. Бунина)»

Современное общество — это общество высоких технологий. Интернет охватил весь мир и все сферы жизнедеятельности людей. Интернет-магазины дают возможность совершать

Открыть / Скачать
Научная статья по теме «Рефлексивно-деятельностный подход в решении организационных конфликтов»

Рефлексия как процесс самопознания всегда вызывала интерес у многих мыслителей еще со времен античной философии. Аристотель определял рефлексию как «мышление,

Открыть / Скачать
Научная статья по теме «Возрастная и гендерная дискриминация в трудовых отношениях»

Дискриминация в трудовых отношениях остается одной из самых «острых» социальных проблем внутригосударственного и мирового масштаба. Дискриминация (discrimination) в переводе с

Открыть / Скачать