Разработка каталога продукции с применением технологий My SQL, HTML и PHP



ОГЛАВЛЕНИЕ

Введение

Данная курсовая работа посвящена проектированию базы данных каталога продукции ОАО «Металлсервис». Предприятие занимается реализацией металлопроката и метизов.

Целью курсового проектирования  ставится разработка каталога продукции с применением технологийMySQL,HTML иPHP.

Задачами курсовой работы являются:

  1. Проектирование базы данных рынка металлопроката и метизов в терминахer-моделировани
    1. Описание предметной области рынка металлопроката и метизов

Пользователь зайдет на веб-страницу сайта акционерного общества и увидит списокродительских категорий продукта (метизы, металлопрокат).

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

Подкатегориивключают в себяпродукты.

Продукты заказываютпользователи.

После перехода на страницу товара, пользователь может приступить кзаказутовара.

Каждый товар сделан из определенноймаркистали

Таким образом, мы выделили следующие объекты для исследования:

  1. Построение концептуальной модели базы данных рынка металлопроката и метизов

    CAERwinDataModeler (ранее называвшийсяAllFusionDataModeler) — программный продукт в области реализации средствCASE-технологий. (ERWin — это исходное название продукта. Появился этот продукт где-то в середине 1990-х. В компании Интерфейс он был доступен еще в пре-релиз виде еще в 1995.BPWin — это значительно более поздний продукт той же компании предназначенный для моделирования бизнес процессов. ВпоследствииERWin множество раз перепродавался. Так что информация из данной статьи вызывает серьезные сомнения.) Позволяет проводить описание, анализ и моделирование модели данных — построитель мета-моделей данных. Занимает одно из лидирующих мест в своём сегменте рынка. В настоящее время выпускается компаниейComputerAssociates.Распространяется на коммерческой основе.

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

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

    Концептуальная (содержательная) модель — это абстрактная модель, определяющая структуру моделируемой системы, свойства её элементов и причинно-следственные связи, присущие системе и существенные для достижения цели моделирования [3].

    В процессе рассмотрения предметной области были определены следующие сущности (таблицы):

    • пользователь (polzovatel);
    • категория (kategoria);
    • подкатегория (podkategoria);
    • продукт (product);
    • заказ (zakaz);
    • mарка (marka).

    Концептуальная модель базы данных будет выглядеть следующим образом:

    Рисунок 1.1 – Концептуальная модель базы данных, построенная с помощьюCASE-средстваErWin

    1. Построение логической модели данных рынка металлопроката и метизов

      На следующем, более низком уровне находится логическая модель данных предметной области. Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью. Примеры понятий - "сотрудник", "отдел", "проект", "зарплата". Примеры взаимосвязей между понятиями - "сотрудник числится ровно в одном отделе", "сотрудник может выполнять несколько проектов", "над одним проектом может работать несколько сотрудников". Примеры ограничений - "возраст сотрудника не менее 16 и не более 60 лет".

      Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь). Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную модель данных. Однако, т.к. мы рассматриваем именно реляционные СУБД, то можно считать, что логическая модель данных для нас формулируется в терминах реляционной модели данных [4].

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

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

      Ниже, на рисунке 1.2,  показана логическая структура базы данных, созданная с помощьюErWin

      Рисунок 1.2 – Логическая модель базы данных (ERWin)

      1. Реализация модели базы данных рынка металлопроката и метизов в интерактивной среде Интернет
        1. Построение физической модели данных  каталога  металлопроката и метизов языке SQL средствами СУБД MySQL

        Теперь приступим к физическому проектированию базы данных. Любая база данных состоит из таблиц (отношений), поэтому теперь наша задача построить таблицы, основываясь на логической модели базы данных. Правила перевода из логической модели данных в физическую следующие:

        • объекты становятся таблицами в физической базе данных
        • атрибуты становятся колонками (полями) в физической базе данных. Для каждого атрибута выбирается свой тип данных.
        • уникальные идентификаторы становятся колонками, не допускающими значениеNULL. В физической базе данных они называются первичными ключами (primarykey).

        После составления физической модели базы данных необходимо составитьSQL-запрос для создания базы данных разработанной выше структуры «metallservice».

        Для СУБДMySQL запрос будет выглядеть следующим образом:

        -- Структура таблицы 'product'

        CREATE TABLE product (

        product_ID int(8) not null auto_increment,

        nazvanie varchar(100) not null,

        podkategoria_id int(8) not null,

        R1 int(8),

        marka_id int(8),

        cena int(8) not null,

        PRIMARY KEY (Product_ID)

        );

        -- Структура таблицы 'marka'

        CREATE TABLE marka (

        marka_id int(8) not null auto_increment,

        nazvanie varchar (20) not null,

        PRIMARY KEY (marka_id)

        );

        -- Структура таблицы 'kategoria'

        CREATE TABLE kategoria (

        kategoria_id int(8) not null auto_increment,

        nazvanie varchar(100) not null,

        PRIMARY KEY (kategoria_ID)

        );

        -- Структура таблицы 'podkategoria'

        CREATE TABLE podkategoria (

        podkategoria_ID int(8) not null auto_increment,

        nazvanie varchar(100) not null,

        kategoria_id int(8) not null,

        primary key (podkategoria_id)

        );

        -- Структура таблицы 'zakaz'

        create table zakaz (

        zakaz_id int(8) not null auto_increment,

        polzovatel_id int(8) not null,

        product_id int(8) not null,

        kolichestvo int(8) not null,

        summa_zakaza int(8) not null,

        data_pokupki int(8),

        primary key (zakaz_id)

        );

        -- Структура таблицы 'polzovatel'

        create table polzovatel (

        polzovatel_id int(8) not null auto_increment,

        fio varchar (50) not null,

        telephon varchar (15) not null,

        email varchar (15) not null,

        primary key (polzovatel_id)

        );

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

        1. Перейти на страницу приложенияPHPMyAdmin (http://localhost/ Tools/phpMyAdmin/index.php).

        2.   Выбрать базу данныхmetallservice (в левой части окна приложения).

        Рисунок 2.1 – Выбор базы данных в окнеPHPMyAdmin

        3. Перейти на закладку «SQL» в верхней части приложения.

        4. ВставитьSQL-скрипт, приведенный выше в окно приложения.

        5. Нажать на кнопку

        Для создания связей между таблицами необходимо:

        1. Перейти на вкладку «Designer»
        2. Нажатьнакнопку «Create Relation».
        3. Выбрать из таблиц базы данных первичный ключ
        4. Выбрать из таблиц базы данных альтернативный ключ.

        Ниже приведена физическая структура таблиц базы данных

        Рисунок 2.2 – Физическая структура таблиц для базы данных (из приложения «PHPMyAdmin»)

        Создав таблицы в базе данных и установив связи между ними, можно приступать к непосредственной реализации каталога металлопроката и метизов с использованием Веб-интерфейса

        1. Реализация каталога металлопроката и метизов с использованием Вэб-интерфейса, созданного на языке программирования PHP

        Для работы с базой данных через с помощью языкаPHP необходимо выполнить следующую последовательность действий:

        1. соединиться с сервером баз данных;

        2. выбрать базу данных;

        3. выполнить SQL-запрос;

        4. вывести данные, полученные в результате запроса.

        Для соединения с базой данных используется операторmysql_connect, для выбора базы данных -mysql_select_db, для выполнения запроса -mysql_query, для выбора данных из БД -mysql_result.

        Вид главной страницы показан на рисунке 2.3.

        Рисунок 2.3 - Внешний вид главной страницыindex.php

        Текст файла главной страницыindex.php приведен в Приложении 2.

        Существует два возможных способа ввода данных в таблицыMySQL:c помощьюSQL-запросов и через веб-интерфейс.

        PHPMyAdmin предоставляет веб-интерфейс для ввода данных в таблицы, но для пользователя, не знакомого с предметной областью разработанной нами базы данных ввод данных в нее будет очень труден. Поэтому нами было принято решение разработать интерфейс администратора для ввода в базу данных возможных позиций металлопроката и метизов.

        Ниже приведен код интерфейса ввода металлопроката (metalloprokat.form.php).

        <HTML>

        <H1>Добавить металлопрокат</H1>

        <FORM ACTION="add_product.php" METOD="get">

        <palign="left">

          Группа товара:<br>

        <select name=podkategoria size=1>

        <?PHP

        $Zapros2 = "select * from podkategoria where kategoria_id=1";

        $Rezalt2 = mysql_query($Zapros2,$soed);

        $Num_podkategories = mysql_num_rows($Rezalt2);

        $k=0;

        while ($k < $Num_podkategories)

        {

        $podkategoria_id = mysql_result($Rezalt2, $k, "podkategoria_id");

        $nazvanie = mysql_result($Rezalt2, $k, "nazvanie");

        print ("<option value=$podkategoria_id>$nazvanie</option>");

        $k++;

        }

        ?>

          </select>

          <br>

          Наименование:<br>

          <input size=40 name=nazvanie><br>

          Радиус:<br>

          <input size=4 name=r1>&nbspмм.<br>

          Марка стали:<br>

          <select name=marka size=1>

          <?PHP

        $Zapros = "select * from marka";

        $Rezalt = mysql_query($Zapros,$soed) or die(mysql_error());

        $Num_marks = mysql_num_rows($Rezalt);

        $k=0;

        while ($k < $Num_marks)

        {

        $marka_id = mysql_result($Rezalt, $k, "marka_id") or die(mysql_error());

        $nazvanie = mysql_result($Rezalt, $k, "nazvanie") or die(mysql_error());

        print ("<option value=$marka_id>$nazvanie</option>");

        $k++;

        }

        ?>

        </select> </br>

          Цена за тонну:

        <input size=10 name=cena>руб.

          <br><br><br>

          <input type=reset value="Очистить">

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

        </FORM>

        </HTML>

        В Приложении 2 приведен код страницы интерфейса ввода метизов (metyz_form.php).

        Интерфейсы выполнены в виде форм на языкеHTML.

        Ниже показано окно интерфейса ввода металлопроката.

        Рисунок 2.4 – Интерфейс ввода металлопроката

        После выбора пользователем подкатегории происходит переход к списку товаров (products_list.php). В формировании этого списка часто используется операторmysql_result.

        Синтаксисоператора:mysql_result (resource result, int row [, mixed field])

        mysql_result() возвращает содержимое одной ячейки из результирующего набора MySQL. Аргумент field может быть смещением поля, именем поля или именем_таблицы.именем_поля (tablename.fieldname). [6].

        При работе с большими результирующими наборами вы можете предусмотреть использование одной из функций, извлекающих ряд целиком. Эти функции возвращают содержимое нескольких ячеек в одном вызове функции, они работают НАМНОГО быстрее, чемmysql_result(). Необхоимо отметить также, что специфицирование числового смещения для аргумента field намного быстрее, чем специфицирование аргумента fieldname или tablename.fieldname [3].

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

        Рисунок 2.5 – Страница списка товаров

        Ниже приведен код страницыproducts_list.php

        <?PHP

        $soed=mysql_connect("localhost", "root", "");

        mysql_select_db("metallservice", $soed);

        $Zapros3 = "select * from podkategoria where podkategoria_id=$podkategoria";

        $Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

        $podkategoria_name = mysql_result($Rezalt3, 0, "nazvanie");

        print "<h1>$podkategoria_name</h1>";

        $Zapros3 = "select * from product where podkategoria_id=$podkategoria";

        $Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

        $Num_products = mysql_num_rows($Rezalt3) or die (mysql_error());

        $k=0;




        Похожие работы, которые могут быть Вам интерестны.

        1. Программное обеспечение для мониторинга каталога продукции предприятия, анализа склада, получения информации об актуальной стоимости товара

        2. Обучение технологии обработки текстовой информации с применением программных средств на основе облачных технологий

        3. Разработка проекта производства продукции с новыми потребительскими свойствами с целью увеличения объема реализованной продукции предприятия и повышения его доходности

        4. РАЗРАБОТКА ДИНАМИЧЕСКОГОWEB-САЙТА С ПРИМЕНЕНИЕМ OPEN SOURCE СИСТЕМ УПРАВЛЕНИЯ КОНТЕНТОМ (CMS)

        5. Разработка технологического проекта механической обработки детали «Корпус» ПКК 0409101 с применением станков с ЧПУ

        6. Обоснованиеи разработка комплексного лечения пациентов с хроническим аутоиммунным тиреоидитом с применением компьютерной рефлексотерапии

        7. Язык разметки HTML: идея, кроссплатформенность

        8. Изменение атрибутов html-объектов. Таймер

        9. Разработка интерактивного учебного комплекса поJava на основеweb-технологий

        10. Разработка проекта АТО перевозки продукции ООО «СКТ Юнипласт» (г. Могилев) с разработкой зон ЕО, ТО