Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

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

ОтчётПомощь в написанииУзнать стоимостьмоей работы

Разработка запросов, позволяющих осуществить поиск и вывод необходимой информации для пользователя; На начальный момент база содержала семь пустых таблиц, что подтверждали соответствующие запросы. Анализ предметной области (выявление сущностей, связей, модели работы магазина и ее предпосылок); 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)

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)

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;

Главная:

session_start ();

?>

if (empty ($_SESSION['login']))

{

echo ''; exit;

exit ();

}

$action1=$_POST['show'];

if ($action1== «Просмотреть базу автомобилей»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

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

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

mysql_select_db ($dbName,$connect_to_db);

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

$qr_result = mysql_query («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") or die (mysql_error ());

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

while ($data = mysql_fetch_array ($qr_result))

{

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

}

echo '

';

echo '

IDМаркаМодельТип КППОбъем двигателяТип кузоваЦветНомер заказаПовреждения
'. $data['idCar']. ''. $data ['Brand_BrandName']. ''. $data['Model']. ''. $data['Gearbox']. ''. $data['CubicCapacity']. ''. $data['Type']. ''. $data['Colour']. ''. $data ['Order_idOrder']. ''. $data['Damaged']. '
';

MYSQL_CLOSE ($connect_to_db);

}

$action2 = $_POST['del'];

$action3 = $_POST['add'];

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

{

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

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

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

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

mysql_select_db ($dbName,$connect_to_db);

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

mysql_close ($connect_to_db);

}

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

}

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

{

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '

';

echo '';

$w1 = $_POST['mark'];

$w2 = $_POST['model'];

$w3 = $_POST['gb'];

$w4 = $_POST['cc'];

$w5 = $_POST['body'];

$w6 = $_POST['colour'];

$w7 = $_POST['cond'];

$add1= $_POST['add2'];

if ($add1 == «Добавить»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

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

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

mysql_select_db ($dbName,$connect_to_db);

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

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

if ($qr2 == true)

{

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

}

mysql_close ($connect_to_db);

}

}

$act4 = $_POST['os'];

if ($act4 == «Обратная связь»)

{

echo ''; exit;

exit ();

}

$act5 = $_POST['exit'];

if ($act5 == «Выход»)

{

unset ($_SESSION['login']);

echo ''; exit;

exit ();

}

$d2 = $_POST['about'];

if ($d2 == «О сайте»)

{

echo ''; exit;

exit ();

}

?>

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

session_start ();

?>

Логин

Пароль

$action1 = $_POST['enter'];

$action2 = $_POST['reg'];

if ($action1 == «Вход»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

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

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

mysql_select_db ($dbName,$connect_to_db);

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

while ($t=mysql_fetch_array ($query1))

{

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

{

$_SESSION['login']=$_POST['login'];

echo ''; exit;

exit ();

}

}

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

mysql_close ($connect_to_db);

}

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

{

echo ''; exit;

exit ();

}

?>

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

Логин
Пароль
Имя
Фамилия
Email
Телефон

$act1 = $_POST['finish'];

$act2 = $_POST['back'];

if ($act1 == «Зарегестрироваться»)

{

$hostname = 'localhost';

$username = 'root';

$password = «;

$dbName = 'mydb2';

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

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

mysql_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`)

VALUES (NULL, '$c1', '$c2', '$c3', NULL, '$c4', '$c5', '$c6');");

if ($q2 == true)

{

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

}

mysql_close ($connect_to_db);

}

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

{

echo ''; exit;

exit ();

}

?>

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

session_start ();

?>

Имя

Телефон

Email

Текст сообщения

if (empty ($_SESSION['login']))

{

echo ''; exit;

exit ();

}

$act3 = $_POST['ok'];

if ($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

Email: $email

Телефон: $ph

Сообщение:

$message";

$mail_to = «[email protected]»;

mail ($mail_to, $theme, $msg, $head);

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

}

$act6 = $_POST['back'];

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

{

echo ''; exit;

exit ();

}

?>

About:

session_start ();

?>

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

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

Орлов Н.

if (empty ($_SESSION['login']))

{

echo ''; exit;

exit ();

}

?>

Показать весь текст
Заполнить форму текущей работой