Организация БД

Lite

Client
Регистрация
17.10.2013
Сообщения
282
Благодарностей
89
Баллы
28
Представим, что необходимо хранить динамику каких-то данных, ну например изменение количества подписчиков аккаунтов инстаграма.
Таблица1 - здесь информация о каждом аккаунте, вида ID, Город, Имя (просто как пример).
Далее требуется раз в неделю чекать каждый акк на подписчиков, и заносить в базу актуальное значение вида "09.04.2018| ID0001| 30", при этом сохраняя данные за предыдущие недели.
Как это лучше организовать?
Пока приходит в голову такой вариант - создание еще одной таблицы, куда заносятся записи по каждой дате.
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 084
Благодарностей
339
Баллы
83

Lite

Client
Регистрация
17.10.2013
Сообщения
282
Благодарностей
89
Баллы
28

IgorSush

Client
Регистрация
11.02.2016
Сообщения
311
Благодарностей
108
Баллы
43
Можно добавить еще один столбец в существующую таблицу, followers_prev или даже не один: followers_prev2, followers_prev3
При обновлении set followers_prev3=followers_prev2,followers_prev2=followers_prev,followers_prev=followers,followers="актуальные данные"
Если я правильно понял задачу
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 088
Благодарностей
126
Баллы
63
Мне тоже интересно, я так понимаю, что нужно будет каждый раз считывать данные подписчиков добавлять текущими и заменять предыдущее значение.
Не знаю как строятся запросы на обновление в mysql.
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
34
Баллы
18
Как по мне, самый удобный вариант завести еще одну таблицу.
Создавать несколько одинаковых полей слегка криво, в таком варианте лучше завести одно поле и хранить там JSON.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113
Во всех вопросах, где нужно решить каким образом хранить данные (какую структуру или способ выбрать) - всегда забывают об одном очень важном моменте: а что вы с этими данными будете затем делать?
Для чего вам хранить такого рода историю? Как вы будете с ними в дальнейшем работать: визуализировать их или делать какие-то расчеты, на основе того, что имеете?
Следует идти "с конца" и думать о конечном использовании - тогда сразу станет понятно какие из способов можно сразу же отбраковать (например, для визуализации скорее всего будет крайне неудобно хранить всё в JSON, т.к. в конечном итоге он разрастется до того, что будет тормозить весь парсинг из-за него + удаление / изменение - это сложно с точки зрения реализации и времени для выполнения).

Думаю, лучшим решением тут будет (даже нет смысла спорить на этот счет) - использовать СУБД, в которой будут 2 таблицы: аккаунты (ид, логин, прочая информация) и подписчики (ид, ид_логина, дата_время, количество подписчиков) - и сделать связь между этими двумя таблицами.

Если СУБД использовать сложно, то другим крайне простым (но не очень хорошим / удобным для реализации) вариантом будет использование отдельной таблицы для каждого аккаунта с историей изменения подписчиков. То есть имеем 1 файл-таблицу с аккаунтами (и то можно пренебречь ей, если по сути для аккаунта нужно хранить только логин без другой информации) и множество файлов-таблиц, которые именем файла (например) связаны с логином и внутри содержат количество подписчиков на определенную дату.
 
  • Спасибо
Реакции: Lite

IgorSush

Client
Регистрация
11.02.2016
Сообщения
311
Благодарностей
108
Баллы
43
@Lord_Alfred +1, для начала надо понять для чего эти данные, как они будут использоваться.
Насчет Json, ИМХО это верх кривизны. Ни поиск, ни сортировка данных, вообще ничто не будет доступно, пока не прочтешь ВСЕ поля Json и их не распарсишь.
А если не нужен поиск, сортировка и т.д., то какой вообще смысл хранить эти данные в БД?
 

Lite

Client
Регистрация
17.10.2013
Сообщения
282
Благодарностей
89
Баллы
28
Думаю, лучшим решением тут будет (даже нет смысла спорить на этот счет) - использовать СУБД, в которой будут 2 таблицы: аккаунты (ид, логин, прочая информация) и подписчики (ид, ид_логина, дата_время, количество подписчиков) - и сделать связь между этими двумя таблицами.
СУБД и предполагал, думал насчет организации данных внутри. Возможно по такой схеме и буду делать)
 

Philipp

Client
Регистрация
14.10.2019
Сообщения
95
Благодарностей
38
Баллы
18
Начал тоже гуглить насчёт того как мне сделать лог со статистикой в бд, в json, но так и не смог понять как отправлять в базу новый объект json.

Для примера хочу такую статистику по каждому объекту

стат: время
стат: время
стат: время

Дабы потом отследить динамику изменения статистики во времени.

Подойдёт ли json или как лучше это организовать в mysql?
 

IgorSush

Client
Регистрация
11.02.2016
Сообщения
311
Благодарностей
108
Баллы
43
Не люблю джейсон, можно сказать даже презираю, вместе с иксемель
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)