Разработка базы данных для онлайн-калькулятора
Рисунок 1 - Вид структуры базы данных
На основании полученного технического задания разрабатывается база данных. Выбрана наиболее защищенная СУБД (система управления базами данных) MySQL. Потому что имеет ряд преимуществ:
- MySQL запускается на любой OS (не требует платной лицензии Windows).
- Полнофункциональная MySQL бесплатна
- Легковесная, не требует мощного железа. Как следствие - быстрее на аналогичном железе.
- Хостинг MySQL есть практически везде
Согласно техническому заданию вначале опишем логическое проектирование базы данных. Для корректной и быстрой работы и подключения базы данных используются несколько таблиц базы данных. Разделяются которые по параметрам из ТЗ - каждый параметр имеет свою таблицу в базе данных. Это делается для максимального удобства и быстрого поиска нужной записи или ошибки.
Таблицы базы данных:
- Счётчики (schetchik)
- Автоматы (automal) - для разделения типа защитного устройства, введен столбец в таблицу (view_automal).
- Производители (procreator)
- Номинальный ток (nominal) - справочник
- Способ установки (view_shield) - справочник
- Номинальное напряжение (leak_tok) - справочник
Каждая таблица имеет ключи первичный (идентификатор записи таблицы - формируется автоматически) и внешний ключ (для связей с другими таблицами).
Метод связи таблиц будет осуществлен “один к одному” ( одна запись к одной записи). Связь "один к одному" встречается редко. Например, у нас есть таблица с информацией о всех сотрудниках и таблица с информацией о всех торговых агентах, которые являются сотрудниками нашего предприятия. Записи в таких таблицах могут быть связаны отношением "один к одному".
Структура таблиц базы данных
Таблица 1 - nominal
Наименование поля | Тип данных | Описание |
---|---|---|
id_nominal | int(10) | Первичный ключ |
view_nominal | int(20) | Значение номинального тока |
Таблица 2 - leak-tok
Наименование поля | Тип данных | Описание |
---|---|---|
id_leak | int(10) | Первичный ключ |
view_leak | int(20) | Значение номинального напряжения |
Таблица 3 - procreator
Наименование поля | Тип данных | Описание |
---|---|---|
id_procreator | bigInt(10) | Первичный ключ |
name_procreator | varchar(100) | Наименования производителя |
Таблица 4 - schetchik
Наименование поля | Тип данных | Описание |
---|---|---|
schetchik_id | int(10) | Первичный ключ |
schetchik_name | varchar(255) | Название счетчика |
schetchik_procreator | varchar(30) | Производитель счетчика |
artikul_etm | varchar(50) | Артикул магазина ЭТМ |
articul_procreator | varchar(50) | Артикул производителя |
id_nominal | int(10) | Внешний ключ |
id_leak | int(10) | Внешний ключ |
cost_schetchik_procreator | float(10,2) | Цена от производителя |
cost_schetchik_etm | float(10,2) | Цена от магазина ЭТМ |
Таблица 5 - automal
Наименование поля | Тип данных | Описание |
---|---|---|
id_automat | int(10) | Первичный ключ |
name_automat | varchar(255) | Название счетчика |
view_automat | varchar(50) | Производитель счетчика |
artikul_etm | varchar(50) | Артикул магазина ЭТМ |
articul_procreator | varchar(50) | Артикул производителя |
id_procreator | bigint(10) | Внешний ключ |
id_nominal | int(10) | Внешний ключ |
id_leak | int(10) | Внешний ключ |
cost_automat_procreator | float(10,2) | Цена от производителя |
cost_automat_etm | float(10,2) | Цена от магазина ЭТМ |
Подключение к базе данных будет идти отдельным файлом для безопасного подключения.
На форму калькулятора выводятся данные для выбора пользователя. Это запрос к базе данных. Пример данного запроса: $schetchiks = $connect->query('SELECT * FROM schetchik'); Запрос берёт все записи из таблицы schetchik и записываются в виде массива. Вывод осуществляется уже на внешней части front-end.