#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 ... Ограничение, конечно, в том, что набор полей в подзапросах должен быть одинаковый, но если это планировалось в одной таблице хранить, то он и так одинаковый. Аналогично и для второй задачи. Другое дело, если таблицы огромные и неповоротливые, а доступ к этим данным нужен часто и быстро - тогда да, иногда, но имеет смысл выделить их в отдельную таблицу. Если же данные нужно один раз посчитать и один раз в день, например, обновить график, то почему бы и не просто запрос.
Комментариев нет:
Отправить комментарий