Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Как хранить меняющуюся величину по дням и по часам


Автор: Win MK 32 28.8.2012, 00:07
Не хотелось бы заводить более 1 таблицы. Разумный ли это подход в данном случае?
Если да, то как можно хранить и по какому алгоритму заносить и сравнивать данные?
Нужно вести учет меняюшейся велечины каждый час и каждый день.

Т.е. я беру например кол-во сообщений (или песен) на каком-то форуме (или сайте) через cURL и потом его добавляю в БД. Нужно по часам и по дням вести учет.

Вот как я начал было делать таблицу. Но потом не понял как же лучше их заносить (данные)
Код

CREATE TABLE IF NOT EXISTS `lastfm` (
  `lastfm_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер',
  `lastfm_count` int(30) NOT NULL COMMENT 'Кол-во песен',
  `lastfm_diff_hour` int(10) DEFAULT NULL,
  `lastfm_diff_day` int(10) DEFAULT NULL,
  `lastfm_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата сохранения',
  `lastfm_memo` varchar(100) DEFAULT NULL,
  `lastfm_created` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`lastfm_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='LastFM' AUTO_INCREMENT=3

Автор: tzirechnoy 28.8.2012, 09:14
Если нужно вести учёт именно по часам и по дням -- то лучш взять rrdtool.

Добавлено через 52 секунды
Ну, или, хотя бы не взять, а изучить его.

Автор: Бонифаций 28.8.2012, 12:00
а не проще просто заносит данные о песнях в таблицу (с временем), а для разбивки по часам - дням - неделям делать просто select с разным group by ? Возможно group by с rollup.

 

Автор: Win MK 32 28.8.2012, 12:27
Цитата(Бонифаций @  28.8.2012,  10:00 Найти цитируемый пост)
а для разбивки по часам - дням - неделям делать просто select с разным group by ? Возможно group by с rollup.

А можно подробнее? я не понял как использовать тут group by и rollup

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)