PHP/mySQL - regular el recálculo de los valores de referencia como los nuevos usuarios enviar sus datos

StackOverflow https://stackoverflow.com/questions/83088

Pregunta

Me enfrento a un nuevo tipo de problema que no he encontrado todavía en mi muy joven programación de "carrera" y quisiera saber su opinión acerca de cómo abordar mejor.

La situación Una solicitud de investigación (php/mysql) que reúne relacionados con el estrés de datos de salud de los usuarios.El usuario obtiene un un análisis después de rellenar el cuestionario.El valor de cada parámetro se transforma en un valor de percentil utilizando un punto de referencia (estándar y media devitation de conjunto de datos existente).

La tarea Ya que más y más ppl son la cumplimentación del cuestionario, existe el potencial para hacer que los valores de referencia (media/SD) más precisa mediante el recálculo de ellos mediante el uso de nuevos datos de usuario.Me gustaría que la base de datos para ejecutar regularmente un script que actualiza los valores de referencia.

La pregunta Yo nunca he usado almacenado precedures tan lejos y yo sólo tengo una ligera idea de lo que son, pero de alguna manera tengo la sensación de que tal vez podría ayudarme con esto?O debo escribir el script como php y, a continuación, configurar un cron job?

[editar]Después de que el primer par de respuestas parece cron es claramente el camino a seguir.[/edit]

¿Fue útil?

Solución

Lo que usted está pensando que se podría hacer en un número de maneras.

  1. Usted puede configurar un disparo en su DB para recalcular los valores cada vez que un nuevo registro se actualiza.Usted puede almacenar el código necesario para actualizar los valores en un procedimiento almacenado si es necesario.

  2. Podría escribir un script de PHP y ejecutarlo con regularidad a través de cron.

#1 será más lento, inserciones a la base de datos, pero asegúrese de que los datos se siempre hasta la fecha.#2 de mayo de bloqueo de las tablas, mientras que las actualizaciones de los nuevos valores, y sus datos sólo serán precisos hasta la próxima actualización.#2 es mucho más fácil de copia de seguridad, como la secuencia de comandos puede ser fácilmente almacenado en su sistema de control de versiones, mientras que usted necesita para almacenar el gatillo y el procedimiento almacenado scripts de creación de la copia de seguridad te gustaría hacer.

Obviamente, usted tendrá que sopesar sus necesidades antes de elegir un método.

Otros consejos

PHP configurado como un cron job le permite mantener en el código fuente del sistema de gestión, y si usted está utilizando una base de datos de la capa de abstracción que va a ser portable a otras bases de datos si alguna vez decide cambiar.Por esas razones, yo tiendo a ir con scripts en procedimientos almacenados.

La forma más fácil de hacer este trabajo es, probablemente, para escribir una secuencia de comandos en el mismo idioma que utiliza su sitio web (suena como PHP) y llamarlo desde cron.

No hay necesidad de hacerlo más complicado de lo que necesita ser poniendo la lógica en dos lugares (sus cálculos existentes y un procedimiento almacenado).

Si el volumen de datos es tan grande, que el cálculo sobre la marcha es demasiado, entonces:

  1. Cron job con el script de php para denormalise los totales
  2. Gatillo en las inserciones que los incrementos totales

Ir con el cron job manera.Simple, sólido, funciona.En PHP/MySQL mundo yo diría que los procedimientos almacenados son no-go.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top