Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/03/2011, 12:28
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: consejo/sugerencia con base de datos

NO voy a entrar en detalles profundos sobre el modelo relacional ahora, porque parece que no es la idea, pero lo básico sería:
Por un lado tienes una entidad denominada "Juego", que puede tener una o muchas variables, pero lo que es seguro es que cada instancia de Juego puede tener diferentes cantidades de ellas. Eso implica que hay un conjunto de atributos (valores) que dependen del Juego en sí, pero que no es constante. Entonces se percibe que hay una entidad que denominamos "Puntaje" que depende de "Juego". Como depende de él y sólo existe porque el juego existe, se denomina "entidad débil", y hereda la clave primaria de la fuerte (Juego).
Esto se traduce en una tabla para Juego y otra para Puntaje. En la primera pones los atributos que son propios de todos los juegos. En la segunda pones aquellos atributos que te permitan saber a qué juego y usuario pertenece cada valor de puntos. En esta forma, la segunda tabla (Puntaje) debe tener dos campos para identificarse y un tercer camo para el valor: 1) La PK de la tabla Juego; 2) Un ID secuencial para numerar las variables propias de cada juego de un usuario y 3) El valor que se guarda.
Esta forma permite que un juego de tipo 1 tenga, por ejemplo, 3 variables; un juego de tipo 2, tenga 7 variables y así sucesivamente. El único secreto es que luego, para recuperar los valores de cada juego la consulta debe cruzar ambas tablas con un INNER JOIN:
Código MySQL:
Ver original
  1. SELECT P.nro_variable, P.valor_variable
  2. FROM juego J INNER JOIN puntaje P ON (J.juego_id = p.juego_id)
  3. WHERE J.nick = 'nickbuscado' AND J.nro_juego = numeroDeJuego;
y además, en lugar de recuperar un único registro, recibes una tabla ordenada donde en la misma columna y en forma sucesiva aparecen uno a uno los valores buscados.

¿Se entiende más?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)