Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/06/2016, 11:29
Avatar de Synkronice
Synkronice
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 7 meses
Puntos: 48
Información Respuesta: fixture y tabla de posiciones (futbol)

Hola Kisquian,

como siempre en la programación web se pueden solucionar los problemas de varias formas, asi que para saber cual es la manera que mas se ajusta a tus necesidades pasaré a enumerar algunas de las que se me ocurren.

1- OPCION: Triggers (Dificultad alta)
Usar triggers en la base de datos. Los triggers son scripts que se programan en MySQL y que se ejecutan cuando se produce un evento. Los eventos disponibles suelen ser al realizar un INSERT, UPDATE o un DELETE.

Es decir podrias programar un trigger en la tabla 'partidos' para que cada vez que hagas un INSERT o un UPDATE en dicha tabla te actualice la otra, es decir la de 'posiciones'.

Este método es muy limpio y elegante, pero requiere un conocimiento profundo en la programación de scripts en MySQL.
2- OPCION: Procedimientos almacenados (Dificultad alta)
Usar procedimientos almacenados. Los procedimientos almacenados tambien son scripts de MySQL pero a diferencia de los triggers estos no se ejecutan por eventos, si no que son ejecutados por el usuario, igual que cuando llamas a una función.

La ventaja de los procemientos almacenados es que puedes preparar manipular el resultado de una query (consulta) a tu gusto. Se suele usar en casos extremos cuando no es suficiento con realizar una query normal y necesitas hacer operaciones mas complejas.

Este método también es muy limpio y elegante ya que delegas en la BBDD toda la logica de datos y en PHP solo te limitas a recibir los datos y mostrarlos, pero al igual que con los triggers requiere de unos conocimientos avanzados en programacion en MySQL.
3- OPCION: Tarea programada o script manual (Dificultad media)
En este caso tendras que prepararte un script en PHP que se encargue de actualizar la tabla 'posiciones' a partir de los resultados de la tabla 'partidos'. Basicamente tendras que recorrer uno por uno todos los partidos y realizar las operaciones matematicas que necesites en base a los datos que necesitas, y a medida que los vas calculando ir actualizando la tabla 'posiciones'.

El script debe ser un script php que solo se encargue de realizar esta tarea, nada mas, recalco su cometido solo sera coger datos de una tabla, hacer las operaciones necesarias y actualizar la otra tabla, nada de mostrar nada por el navegador.

Una vez tengas tu script podras ejecutarlo cuando tu lo necesites o asociarlo a una tarea programada (cron en linux). No entro a describir lo que es un cron porque esta fuera del objetivo de este mensaje.
4- OPCION: Generar las posiciones dinamicamente (Dificultad baja)
En este caso solo tendras una tabla que sera la de partidos y en lugar de preocuparte de actualizar la tabla posiciones (ya no lo vas a necesitar porque no existira esa tabla) te limitaras a obtener los resultados de los partidos, calcularas las posiciones en PHP y lo mostraras al usuario en HTML.

Con este metodo te evitas tener que estar actualizando la tabla 'posiciones' ya que ahora ya no existe. Y solo tendras que montar el listado en HTML.
Como ves todas las opciones tienen sus pros y sus contras, ahora te toca a ti elegir la que mas se ajuste a tus necesidades y conocimientos.

Saludos,

Synkronice
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill