+7(863)285-04-66

info@promtechautomat.ru

г. Ростов-на-Дону. Социалистическая 74

Разработка базы данных для онлайн-калькулятора стоимости монтажа кабельных лотков

database-view

Рисунок 1 - Вид структуры базы данных

Для реализации и работы онлайн калькулятора, для хранения цен, названий и артикулом материалов и лотков необходимо разработать базу данных.

На основании полученного технического задания разрабатывается база данных. Выбрана наиболее защищенная СУБД (система управления базами данных) MySQL. Потому что имеет ряд преимуществ:

  • MySQL запускается на любой OS (не требует платной лицензии Windows).
  • Полнофункциональная MySQL бесплатна
  • Легковесная, не требует мощного железа. Как следствие - быстрее на аналогичном железе.
  • Хостинг MySQL есть практически везде

Согласно техническому заданию вначале опишем логическое проектирование базы данных. Для корректной и быстрой работы и подключения базы данных используются несколько таблиц базы данных. Разделяются которые по параметрам из ТЗ - каждый параметр имеет свою таблицу в базе данных.

Определили и назвали имена сущностей (таблиц) в базе данных:

  1. Cap_lotok - таблица углов
  2. Cap_views - вида углов
  3. Height_lotok - высоты лотка
  4. Width_lotok - ширины лотка
  5. Length_lotok - длины лотка
  6. View_lotok - типа лотка
  7. Top_lotok - крышки лотка
  8. lotok - таблица лотков

Каждая таблица имеет ключи первичный (идентификатор записи таблицы - формируется автоматически) и внешний ключ (для связей с другими таблицами).

Метод связи таблиц будет осуществлен “один к одному” ( одна запись к одной записи). Примером послужит данный случай. Один лоток имеет лишь одну высоту и одну ширину - он не может иметь два разных значения высоты, так как это уже будут два разных лотка.

Структура таблиц базы данных

Таблица 1 - Cap_lotok

Наименование поля Тип данных Описание
id_cap_lotok bigint(20) Primary Key
name_cap varchar(255) Назване угла
height_cap bigint(20) Внешний ключ (высота)
cap_view bigint(20) Внешний ключ (вид угла)
artikul_etm varchar(255) Артикул холодного цинкования
articul_procreator varchar(255) Артикул горячего цинкования
cost_etm float(10,2) Цена холодного цинкования
cost_procreator float(10,2) Цена горячего цинкования

Внешний ключ height_cap ссылается на таблицу height_lotok

Внешний ключ cap_view ссылается на таблицу cap_view

Таблица 2 - Cap_view

Наименование поля Тип данных Описание
id_cap_view bigint(20) Primary Key
view_cap_name varchar(255) Назване вида угла

Таблица 3 - height_lotok

Наименование поля Тип данных Описание
id_height bigint(20) Primary Key
height_val float Значение высоты (мм)

Таблица 4 - width_lotok

Наименование поля Тип данных Описание
id_width bigint(20) Primary Key
width_val float Значение ширины (мм)

Таблица 5 - length_lotok

Наименование поля Тип данных Описание
id_length bigint(20) Primary Key
length_val float Значение длины (мм)

Таблица 6 - view_lotok

Наименование поля Тип данных Описание
id_views bigint(20) Primary Key
name_view varchar(100) Название вида лотка

Таблица 7 - top_lotok

Наименование поля Тип данных Описание
id_top bigint(20) Primary Key
name_top varchar(255) Название крышки лотка
height_top bigint(20) Внешний ключ
length_top bigint(20) Внешний ключ
width_top bigint(20) Внешний ключ
artikul_etm text Артикул холодного цинкования
articul_procreator text Артикул горячего цинкования
cost_etm float Цена холодного цинкования
cost_procreator float Цена горячего цинкования

Внешний ключ height_top ссылается на таблицу height_lotok

Внешний ключ length_top ссылается на таблицу length_lotok

Внешний ключ width_top ссылается на таблицу width_lotok

Таблица 6 - lotok

Наименование поля Тип данных Описание
id_lotok bigint(20) Primary Key
name_lotok varchar(100) Название лотка
artikul_etm varchar(255) Артикул холодного цинкования
artikul_procreator varchar(255) Артикул горячего цинкования
id_height bigint(20) Внешний ключ
id_lenght bigint(20) Внешний ключ
id_views bigint(20) Внешний ключ
id_width bigint(20) Внешний ключ
lotok_cost_etm float Цена холодного цинкования
lotok_cost_procreator float Цена горячего цинкования

Внешний ключ id_height ссылается на таблицу height_lotok

Внешний ключ id_lenght ссылается на таблицу lenght_lotok

Внешний ключ id_width ссылается на таблицу width_lotok

Внешний ключ id_views ссылается на таблицу view_lotok

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

Пример запроса:

$lenghts = $connect->query("SELECT * FROM length_lotok");

Но нам также нужно поставить значения в порядке увеличения, поэтому изменим запрос:

$lenghts = $connect->query('SELECT * FROM length_lotok ORDER BY height_val');

В запросе “Order by” - означает отсортировать полученные данные по значениям столбца, будь то строковые тогда порядок шёл по алфавиту, а если нет, тогда по возрастанию.

Вывод полученных данных осуществляется уже на внешней части front-end.