Диплом: Совершенствование бизнес процессов предприятия на основе внедрение информационных систем (на примере предприятия "TWO STICKS")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
Рисунок 3. Физическая модель базы данных
Создание таблиц, редактирование, запросы – все реализуется
средствами структурированного языка запросов SQL.
Создание базы данных и таблиц осуществляется с помощью команды
CREATE. При сохздании базы данных указывается кодировка.
create database if not exists two_sticks default character set utf8;
Можно воспользоваться для удобства утилитой PHPMyAdmin.
Создание базы данных представлено на рисунке 11.
Рисунок 5. Создание базы данных
Чтобы создать родительскую таблицу, необходимо наличие
первичного ключа. Пример создания родительской таблицы klients
представлен ниже.
43
create table if not exists klients
(id_kl int not null auto_increment,
name_kl varchar(70),
phone_kl varchar(20),
address varchar(100),
mail_kl varchar(20),
passport varchar(20),
primary key (id_q))
engine=innodb;
Предложение engine=innodb служит для возможности обеспечения
ссылочной целостности.
Для создания дочерней таблицы кроме первичных ключей
необходимо также наличие вторичных индексов, которые бы связывали две
таблицы и обеспечивали возможность удаления, обновления данных
дочерних таблиц при соответственном удалении или обновлении данных
родительских таблиц. Рассмотрим создание дочерней таблицы на примере
таблицы products.
create table if not exists products
(id_eq int not null auto_increment,
id_typ integer not null,
name_eq varchar(100),
specif varchar(200),
count integer,
price integer,
description varchar(250),
primary key (id_eq),
foreign key (id_typ) references type (id_typ) on delete cascade
on update cascade)
engine=innodb;
44
Создание таблиц возможно также с помощью утилиты PHPMyAdmin
(рисунок 12).
Рисунок 6. Создание таблицы
Чтобы заполнить таблицы данными, используется команда INSERT
TABLE. На рисунке 13 представлено использование данной команды.
Рисунок 7. Добавление данных в таблицу
Для редактирования данных таблицы и их удаления используются
команды UPDATE и DELETE.
Чтобы добавить данные в таблицу программно на этапе исполнения,
используется SQL запрос совместно с PHP функцией. Например, с
помощью следующего программного кода реализуется добавление заказа в
таблицу orders.
public function insert_order_db($id_kl,$id_man,$id_eq,$id_typ)
{
$query = "INSERT INTO backet (id_kl,id_man,id_eq,id_typ)
VALUES(?,?,?,?);";
45
$st = $this->db->prepare($query);
$st->bind_param('iiii',$id_kl,$id_man,$id_eq,$id_typ);
if(!$st->execute())
{
die('Error : ('. $this->db->errno .') '. $this->db->error);
}
$st->close();
}
Здесь используются входные параметры, так как эти данные будет
вводить пользователь, и они будут меняться.
Изменение данных также реализуется на этапе исполнения
программы, когда администратор редактирует, например, название товара,
статус заказа или др. Ниже приведен пример редактирования статуса заказа
таблицы orders.
public function update_order_db($status,$id_ord)
{
$query = "UPDATE orders SET status=? WHERE id_ord=?;";
$st = $this->db->prepare($query);
$st->bind_param('si', $status,$id_ord);
if(!$st->execute())
{
print 'Error : ('. $this->db->errno .') '. $this->db->error;
}
$st->close();
}
Очистка покупательской корзины происходит с помощью удаления
записей из таблицы. Пример кода удаления записей из таблицы backet
приведен ниже.
public function del_order_db($id_kind)
{
46
$query = "DELETE from backet WHERE id_kind=?;";
$st = $this->db->prepare($query);
$st->bind_param('i', $id_kind);
if(!$st->execute())
{
print 'Error: ('. $this->db->errno .') '. $this->db->error;
}
$st->close();
}
Выборка данных из таблиц осуществляется с помощью SQL команды
SELECT.
Приведем примеры различных запросов.
Выборка данных из одной таблицы с условиями точного совпадения с
помощью параметрического запроса представлена ниже.
select id_man, name_man,login,password from managers where login=? and
password=?;
С помощью данного запроса просматривается таблица menegers на
наличие записи с таким же логином и паролем, какие ввел пользователь при
авторизации.
Далее показана выборка из нескольких связанных таблиц с
несколькими условиями выборки, с сортировкой по имени клиента и с
параметром.
SELECT id_ord, klients.id_kl as id_kl, name_kl as name_kl,nom, name_man,
products.id_eq as id_eq,name_eq,specif,price,status, data, count, address,
klients.phone_kl as phone,types.id_typ,description
FROM orders,klients,products,managers,types WHERE klients.id_kl=orders.id_kl
and products.id_eq=orders.id_eq and managers.id_man=orders.id_man and
types.id_typ=products.id_typ and nom=".$nom."
order by name_kl;
В следующем примере производится расчет стоимости покупки
данного клиента по заказу. Используется запрос с применением агрегатной
функции SUM().
47
select SUM(price) as count
from orders, klients
where klients.id_kl=orders.id_kl and klients.id_kl=?;
Для выборки всех заказов данного менеджера используется запрос с
группировкой и агрегатной функцией SUM().
SELECT id_ord, klients.id_kl as id_kl, name_kl as name,nom, status, data,
sum(price* orders.count) as s FROM orders,klients,products WHERE
klients.id_kl=orders.id_kl and products.id_eq=orders.id_eq and
id_man=".$id_man." group by nom;
Для реализации покупательской корзины была создана таблица backet,
в которую, как во временный буфер сохраняются товары, выбранные
клиентом. Был создан сложный запрос с вложенным подзапросом.
select id_eq, name_eq, specif, price, id_typ
from products where id_eq in (select id_eq from backet where
id_kl=".$id_kl." and id_man=".$id_man.");
С помощью данного запроса выбираются из таблицы products по
номерам те товары, которые находятся в корзине и соответствуют
требуемому клиенту и менеджеру.
В корзине могут содержаться товары, соответствующие разным
менеджерам и клиентам и из разных заказов. Это следует учитывать при
удалении товаров из корзины. После нажатия кнопки КУПИТЬ все
купленные данным клиентом товары должны поступить в соответствующий
заказ таблицы orders. Номер данного заказа рассчитывается как
максимальный номер заказа из таблицы orders плюс один. Затем все
выбранные пользователем товары сохраняются в таблицу orders, а из
корзины они соответственно удаляются. Вся последовательность данных
операций описана в нижеприведенной процедуре.
public function empti_backet_db($id_kl, $id_man)
{
$query="select max(nom)+1 as max from orders;";
$st = $this->db->prepare($query);
$st->execute();
$st->bind_result($max);
$i=0;
48
while($st->fetch())
{
$max=$max;
$i++;
}
$st->close();
$i=0;
while ($i<$n)
{
$q = "INSERT INTO orders (id_kl,id_man,id_eq,nom,status,count,data)
VALUES(?,?,?,?,'принят',?,curdate());";
$st1 = $this->db->prepare($q);
$st1->bind_param('iiiii',$id_kl,$id_man,$row[$i]['id_eq'],$max,$count);
if (!$st1->execute())
{
die('Error : ('. $this->db->errno .') '. $this->db->error);
}
$st1->close();
$i++;
}
$query = "DELETE from backet WHERE id_kl=? and $id_man=?;";
$st = $this->db->prepare($query);
$st->bind_param('ii', $id_kl,$id_man);
if(!$st->execute())
{
print 'Error: ('. $this->db->errno .') '. $this->db->error;
}
$st->close();
}
2.4. Контрольный пример реализации проекта и его описание
После запуска приложения открывается главная страница с
возможностями входа в систему менеджера и клиента с разграничением прав
доступа. Менеджер имеет возможность редактировать все имеющиеся
данные о заказах, поставках, климентах и др. Клиент же может только
просмотреть заказы, сделанные им, их статус, сумму, распечатать договор и
другие документы, касающиеся только его личных заказов. На данной
странице расположены прокручивающиеся слайды, реализованные
49
функциями тамера JavaScript. Пролистываются картинки при наведении
указателя мыши на картинки со стрелками. При наведении стрелки
увеличиваются в размере. Это реализовано с помощью функций JQuery. На
рисунке 19 показано главное окно программы.
Рисунок 1. Главное окно программы
На данном рисунке представлено окно авторизации пользователя.
Войти в систему имеет право только зарегистрированный менеджер или
клинет. Регистрировать пользователей может только менеджер.
После входа в систему открывается окно с главным меню, из которого
можно выбрать действие для работы с базой данных. В нижней части меню
отображается фамилия, имя и отчество администратора или клиента,
осуществившего вход в систему (рисунок 20).
50
Рисунок 2. Окно с главным меню
Если в систему входит клиент, ему не доступны функции
редактирования данных (рисунок 21).
Рисунок 3. Меню Товар для вошедшего клиента
Если же входит менеджер, у него имеется возможность удалять,
добавлять, изменять данные (рисунок 22).
51
Рисунок 4. Меню Товар для вошедшего менеджера
При выборе категории товара открывается список подкатегорий
(рисунок 23)
Рисунок 5. Список подкатегорий
Далее можно открыть список товаров (рисунок 24).
Рисунок 6. Список товаров данной подкатегории
Для того, чтобы оформить заказ, выбираем соответствующий пункт
меню, затем категорию, подкатегорию, товар и нажимаем кнопку Купить
(рисунок 25).

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран