2008-09-17 5 views
2

Я столкнулся с новой проблемой, с которой я еще не сталкивался в своей очень молодой программе «карьеры», и хотел бы узнать ваше мнение о как справиться с этим лучше всего.PHP/mySQL - регулярный пересчет контрольных значений, поскольку новые пользователи представляют свои данные

Ситуация Приложение исследования (php/mysql) собирает данные о здоровье, связанные со стрессом, от пользователей. После заполнения вопросника пользователь получает анализы. Значение для каждого параметра преобразуется в значение процентиля с использованием эталона (среднее и стандартное отклонение существующего набора данных).

Задача Так как все больше и больше PPL заполняют вопросник, есть потенциал, чтобы сделать эталонные значения (среднее/SD), более точным путем перерасчета их, используя новые пользовательские данные. Я хотел бы, чтобы база данных регулярно запускала скрипт, который обновляет контрольные значения.

Вопрос Я никогда не использовал сохраненные precedures до сих пор, и я только небольшое представление о том, что они каким-то образом, но у меня есть ощущение, что они могли бы, возможно, помочь мне с этим? Или я должен написать скрипт как php, а затем настроить работу cron?

[править] После того, как первая пара ответов она выглядит как хроны явно путь. [/ Править]

ответ

1

То, что вы рассматриваете, может быть выполнено несколькими способами.

  1. Вы можете настроить триггер в своей БД, чтобы пересчитывать значения всякий раз, когда обновляется новая запись. Вы можете сохранить код, необходимый для обновления значений в sproc, если это необходимо.

  2. Вы можете написать PHP-скрипт и регулярно запускать его через cron.

# 1 замедлит вставки в базу данных, но будет убедиться, что ваши данные всегда до настоящего времени.# 2 может блокировать таблицы при обновлении новых значений, и ваши данные будут точными только до следующего обновления. # 2 намного проще выполнить резервное копирование, так как скрипт можно легко сохранить в вашей системе управления версиями, тогда как вам нужно будет хранить сценарии создания триггера и sproc в любой резервной копии, которую вы сделаете.

Очевидно, вам придется взвесить свои требования перед тем, как выбрать метод.

1

PHP создан как хроны позволяют сохранить его в системе управления исходного кода, и если вы используете уровень абстракции базы данных, он будет переноситься в другие базы данных, если вы когда-нибудь захотите переключиться. По этим причинам я склонен идти со сценариями над хранимыми процедурами.

0

Если объем данных достаточно велик, что его расчет на лета слишком много, то либо:

  1. Cron работа с PHP скриптом для denormalise итоговых
  2. Trigger на вставках, что увеличивает составляет
0

Идём с cron job way. Простой, солидный, работает. В мире PHP/MySQL я бы сказал, что хранимые процедуры не работают.

1

Самый простой способ сделать эту работу - это, вероятно, написать сценарий на том же языке, который использует ваш сайт (звучит как PHP), и называть его cron.

Не нужно делать это более сложным, чем это необходимо, если положить логику в два места (ваши существующие вычисления и хранимую процедуру).

 Смежные вопросы

  • Нет связанных вопросов^_^