|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.05.2014, 08:37 | #1 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
БД_перезапись_с_Т1_в_Т2
Здравствуйте.
Имеется: Допустим у меня есть таблица_1 в которой автоматически создаются поля (каждые 30сек ± 5сек) "id" "date" "randon_number. Рhp-скрипт, запускаемый с помощью крон каждые 30сек ± 5сек, записывает в таблица_2 "random_number_min" и "random_number_max" блоками по 10мин. Т.е. каждые 30сек сверяет с предыдущим числом и записывает или в поле с минимальным или с максимальным значением. Задача: Проблема возникает на этапе создания таблица_2. Как сделать так, чтобы в течение 10мин код сравнивал данные между собой, записывал их в свои поля, а после истечении 10мин удаляла эти поля и записывала только одно поле с min и max значениями. И главное, чтобы по истечении 10мин код не начинал сначала обрабатывать старые данные. Направьте меня хотя бы в нужном пути, а то я просто не понимаю как это реализовать. Спасибо. |
05.05.2014, 09:04 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
Чет ваще странно как то. Но я бы делал так :
В первую таблицу добавил поле типа timestamp - дата ивремя записи значения Во второй таблице также еще поле обозначающего начало 10 минутного блока Второй крон раз в 10 минут, делаем запрос На выборку мин и макс с условием на то что время в первой таблице входит в диапазон время из второй табл из посл записи плюс 10 мин до то же время плюс 20, значение получ записываем в табл2, |
05.05.2014, 10:00 | #3 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
Первое: В том то и дело, что крон выполняется не всегда, как в первом так и во втором скрипте. Тогда получится так, что крон, который срабатывает каждые 10мин может пропустить целый блок. Поэтому я и хотел, чтобы проверка сравнение чисел происходило каждые 30сек (чтобы уменьшить влияние невыполнение скрипта).
И второе: Крон должен срабатывать не каждые 10мин, а каждые 9мин (каждые 3 часа цикл мин обнуляется и начинает заново, изменяются только часы). Тоже не знаю как сделать. |
05.05.2014, 10:06 | #4 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
смахивает все это на бредовое желание реализовать не пойми что...
зачем создавать и убивать поля? русскими словами объяснить задачу можете? |
05.05.2014, 10:13 | #5 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
В базе должны храниться и добавляться результаты min и max, каждых ДЕВЯТИ минут. И ничего кроме этого там не должно быть. А браться они должны из таблицы которая постоянно обновляется и дополняется (каждые 30сек). Так понятно?
Последний раз редактировалось Parallelogram; 05.05.2014 в 10:27. |
05.05.2014, 10:32 | #6 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
Т.к. скрипт работает не постоянно/не все время, а запускается каждые 30сек, то и данные сравнения чисел должны где-то хранится. Идея была хранить в каком-н файле (но по файлу сложно искать) или БД (но и таблицы не хотелось бы плодить). Я решил что в БД будет проще, да и вес файла впоследствии будет весить не один десяток метров.
|
05.05.2014, 10:52 | #7 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
|
|
05.05.2014, 11:48 | #8 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
Давайте я еще раз попытаюсь объяснить на каких моментах у меня происходят проблемы.
Первый скрипт срабатывает и записывает в Табл1: время и рандомное число. Второй скрипт должен сравнивать это число с предыдущим и записывать его (в зависимости от значения) в Табл2 в поля: min и max. Через 30сек срабатывает опять первый скрипт, который генерирует новое число и записывает его в Табл1. Запускается второй скрипт и опять сравнивает с предыдущим и опять заносит в свое поле в Табл2. Это все будет продолжаться до тех пор, пока не стукнет 09мин 00сек. Тогда первый скрипт все также запишет в Табл1 рандомные числа. Но вот второй скрипт перестанет записывать данные по первым девяти минутам в поле Табл2, а начнет новые сравнения уже начиная с нового числа. А значения с предыдущей "девятки" занесет в поле id_1: date, min, max. Как и где производить группировку? Как заставить понять, что предыдущие 9мин закончились и их не нужно обрабатывать? |
05.05.2014, 12:32 | #9 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
Честно говоря задачу не понял, но могу предположить, а триггер на первую таблицу вам не подойдет?
|
05.05.2014, 13:59 | #10 | |||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
Цитата:
в чем вопрос то? Цитата:
|
|||