por - recibir variables get php
PHP/mySQL: recálculo regular de los valores de referencia a medida que los nuevos usuarios envían sus datos (5)
La forma más sencilla de hacer que esto funcione es, probablemente, escribir un guión en el mismo idioma que usa su sitio web (suena como PHP) y llamarlo desde cron.
No es necesario que sea más complicado de lo que debe ser al poner la lógica en dos lugares (sus cálculos existentes y un procedimiento almacenado).
Me enfrento a un nuevo tipo de problema que aún no he encontrado en mi muy joven "carrera" de programación y me gustaría conocer su opinión sobre cómo abordarlo mejor.
La situación Una aplicación de investigación (php / mysql) reúne datos de salud relacionados con el estrés de los usuarios. El usuario obtiene un análisis luego de completar el cuestionario. El valor de cada parámetro se transforma en un valor de percentil utilizando un punto de referencia (media y desvío estándar del conjunto de datos existente).
La tarea Dado que cada vez más personas completan el cuestionario, existe la posibilidad de que los valores de referencia (media / DE) sean más precisos al volver a calcularlos con los nuevos datos de usuario. Me gustaría que la base de datos ejecute regularmente un script que actualice los valores de referencia.
La pregunta que nunca he usado almacenaba los procedimientos hasta ahora y solo tengo una ligera idea de lo que son, pero de alguna manera tengo la sensación de que podrían ayudarme con esto. ¿O debería escribir el script como php y luego configurar un trabajo cron?
[edit] Después de las primeras dos respuestas, parece que cron es claramente el camino a seguir. [/ edit]
Lo que estás considerando se puede hacer de varias maneras.
Puede configurar un disparador en su base de datos para volver a calcular los valores siempre que se actualice un nuevo registro. Puede almacenar el código necesario para actualizar los valores en un sproc si es necesario.
Podrías escribir un script PHP y ejecutarlo regularmente a través de cron.
# 1 ralentizará las inserciones en su base de datos, pero se asegurará de que sus datos estén siempre actualizados. # 2 puede bloquear las tablas mientras actualiza los nuevos valores, y sus datos solo serán precisos hasta la próxima actualización. # 2 es mucho más fácil de realizar una copia de seguridad, ya que la secuencia de comandos se puede almacenar fácilmente en su sistema de control de versiones, mientras que debe almacenar los scripts de creación de sproc y desencadenador en cualquier copia de seguridad que realice.
Obviamente, tendrá que sopesar sus requisitos antes de elegir un método.
PHP configurado como un trabajo cron le permite mantenerlo en su sistema de administración de código fuente, y si está utilizando una capa de abstracción de base de datos, será portátil a otras bases de datos si alguna vez decide cambiar. Por esas razones, tiendo a ir con scripts sobre los procedimientos almacenados.
Si el volumen de datos es lo suficientemente grande como para calcularlo sobre la marcha es demasiado, entonces:
- Trabajo de Cron con script php para desnormalizar los totales
- Disparador en insertos que incrementa los totales
Ve con el modo de trabajo cron . Simple, sólido, funciona. En el mundo de PHP / MySQL diría que los procedimientos almacenados son no-go.