Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

БД и постройка статистика простого интернет магазина

#sql #база_данных #статистика


Добрый день коллеги! Требуется ваше мнение относительно логики построения статистки
Интернет магазина с использованием диаграммы Google charts. Google Charts была выбрана
за свою простоту и бесплатность. 

Заранее приношу извинения в SQL и бэкэнде не силен. С постройкой логики тоже большого
опыта не имею. 

Что имеем: 


базу данных Mysql;
5 таблиц куда записываются клики (1 – старый клиент, 2 – новый клиент, 3 – товар,
4 – комментарии, 5 – отзывы);


Что необходимо:

Задача №1. построить 5 графиков итоги кликов записанной в каждой таблицы; 

Задача №2. построить на основе значений 5 таблиц - 1 график кликов по всему магазину. 

Видение автора на вопрос: 

Решение задачи №1 – так как диаграмма GC принимает готовые значения полей таблиц,
сначала суммирую значение каждой строки таблицы и записываю их результат в отдельно
созданную таблицу назовем её total-1 – тем самым решаем проблему с выводом диаграмм
5 таблиц. 

Решение задачи №2 – далее суммирую итоги 5 таблиц и записываю во вторую созданную
таблицу total-2 таким образом строиться график по всему магазину.

В результате две новые таблицы. Будет ли это оптимально и правильно построенная схема
сбора данных и вывода их?
    


Ответы

Ответ 1



Не уверен, что понял вопрос правильно, но нужно ли в вашем проекте хранить расчёт построения графика в какой-то таблице? Если такой необходимости нет, то чем же юнион не угодил? SELECT <нужные поля из таблицы раз> FROM <таблица раз> WHERE <условия на таблицу раз> UNION ALL SELECT <нужные поля из таблицы два> FROM <таблица два> WHERE <условия на таблицу два> UNION ALL SELECT ... Ограничение, конечно, в том, что набор полей в подзапросах должен быть одинаковый, но если это планировалось в одной таблице хранить, то он и так одинаковый. Аналогично и для второй задачи. Другое дело, если таблицы огромные и неповоротливые, а доступ к этим данным нужен часто и быстро - тогда да, иногда, но имеет смысл выделить их в отдельную таблицу. Если же данные нужно один раз посчитать и один раз в день, например, обновить график, то почему бы и не просто запрос.

Комментариев нет:

Отправить комментарий