Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Tabla de DB muy grande,mal estructurada?

Estas en el tema de Tabla de DB muy grande,mal estructurada? en el foro de Mysql en Foros del Web. Holade nuevo XD!. Sucede que tengo una tabla en la base de datos para guardar reportes de un partido (juego) que tengo: id (int7) campo1,campo2,campo3(text) ...
  #1 (permalink)  
Antiguo 13/01/2011, 14:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 84
Antigüedad: 16 años
Puntos: 1
Información Tabla de DB muy grande,mal estructurada?

Holade nuevo XD!.

Sucede que tengo una tabla en la base de datos para guardar reportes de un partido (juego) que tengo:

id (int7)
campo1,campo2,campo3(text)

Y la utilizo para guardar código HTML desde un script que hice. Y éste es el código mas o menos parecido, que guardo en los campos.

Código:
<a href="pagina.php?player_id=44" target="_blank">Guillermo Torres</a> lanza un tiro de esquina, <a href="pagina.php?player_id=41" target="_blank">Andres Antelo</a> está libre,la mide y cabecea al ángulo...es un Golazo!!!.<span class="whois">1-0</span>.Excelente pase de <a href="pagina.php?player_id=1" target="_blank">FeRnando Barba</a> para <a href="pagina.php?player_id=182" target="_blank">Torogol</a>,que remata desviado.<a href="pagina.php?player_id=180" target="_blank">SYGFRIDO</a> estuvo rapidísimo en una jugada individual del delantero rival,<a href="pagina.php?player_id=60" target="_blank">Pablo Melgar</a>,quien no llegó en la disputa entre el balón y el portero.<a href="pagina.php?player_id=56" target="_blank">Diego Alonso</a> lanza un tiro de esquina, <a href="pagina.php?player_id=52" target="_blank">Agustin Alonso</a> está libre,salta...y...y...es un Golazo!!!.<span class="whois">1-1</span>.El jugador <a href="pagina.php?player_id=42" target="_blank">Lucas Valverde</a> llegó a destiempo en una disputa con <a href="pagina.php?player_id=57" target="_blank">Federico Moreno</a>,es amonestado...<a href="pagina.php?player_id=43" target="_blank">Mauricio Cabrera</a> está muy bien ubicado por la izquierda, desde lejos remata el delantero rival,pero <a href="pagina.php?player_id=180" target="_blank">SYGFRIDO</a> recibe un disparo muy flojo.El medio campo está muy disputado,<a href="pagina.php?player_id=44" target="_blank">Guillermo Torres</a> está mejor ubicado que <a href="pagina.php?player_id=55" target="_blank">Eugenio Quinteros</a> y le roba el balón,despierta!.
<a href="pagina.php?player_id=60" target="_blank">Pablo Melgar</a> estuvo muy lento en hacer una bicicleta,<a href="pagina.php?player_id=41" target="_blank">Andres Antelo</a> fué mas rápido y le robó la cartera!.<a href="pagina.php?player_id=45" target="_blank">Alberto Valverde</a> da un pase largo a <a href="pagina.php?player_id=182" target="_blank">Torogol</a>, éste deja a su marca, está solo contra el portero,remata...GOL! <span class="whois">2-1</span>
Pueden ver aquí el reporte de como se vé ese código al llamarlo desde un simple ECHO $reporteX;

[URL="http://blegend.net16.net/ver_partido.php?id=318"]http://blegend.net16.net/ver_partido.php?id=318[/URL]

La cuestión es que si estoy guardando bien los datos en la base de datos,porque cada 100 partidos (reportes) pesan 1 MB en la base de datos,precisamente en una sola tabla donde guardo estos datos TEXT.

AnY helP?

Última edición por nanitoz; 13/01/2011 a las 14:12
  #2 (permalink)  
Antiguo 14/01/2011, 04:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Tabla de DB muy grande,mal estructurada?

La optimización tiene normas pero no es una ciencia exacta...

Se me ocurre que podrías buscar la forma de no meter el nombre del jugador, ya que lo tienes en otra tabla, (...player_id=44...).

La tabla con el texto podria quedar como sigue

Reportes
id_reporte PK
id_partido FK referenciada a una tabla con los partidos
tiempo (1=T1,2=T2,3=Pr1,4=Pr2,5=ET,6=ETPr,7=Final...)
minuto (integer)
player_id FK referenciada a la tabla jugadores
comentario (texto)
gol (booleano)
pp (booleano)
targeta (null,1=amarilla,2=roja)
player_id_cambio FK2 referenciada a la tabla jugadores

Con algo así podrias incluso no guardar el HTML ya que lo podrias construir despues con la programación adecuada.

Ejemplo
id_reporte=XX
id_partido=YY
tiempo=1
minuto=2
player_id=44
comentario="lanza un tiro de esquina"
gol=0
pp=0
targeta=null
player_id_cambio=null

Con estos datos se puede construir el HTML que estas usando y se ha guardado exclusivamente el texto del comentario, el resto son campos con poco peso.

A partir del player_id puedes obtener el nombre del jugador y el equipo en el que juega con los joins pertinentes y el del jugador por el que se cambia. Tambien tendrías que buscar la forma de calcular el resultado parcial cada vez que "gol" sea true (1) tan facil como tener dos variables (una por equipo) e ir sumando goles cada vez que se produzcan (al equipo del jugador si pp=0 o al contrario, pp->propia puerta o arco como le llameis)...

Como mejor guardada tengas la información des de el punto de vista de bbdd mas programación necesitas para mostrarla. Pero la progamación la haces una vez y no crece, encambio una mala estructuración de los dadots guardados permite trabajar con menos programación pero puede llevarte a un caos y ademas creciente.

echo "<a href='pagina.php?player_id=".$player_id." target='_blank'>".$player_nombre."</a> ".$comentario.", ";
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 14/01/2011 a las 04:13
  #3 (permalink)  
Antiguo 14/01/2011, 21:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 84
Antigüedad: 16 años
Puntos: 1
De acuerdo Respuesta: Tabla de DB muy grande,mal estructurada?

sí,gracias x la respuesta.

pensé que no iba ser tan notorio el crecimiento de toda la tabla al guardar así con codigo html más,pero por lo que veo,es mucho mejor guardar los datos necesarios,y no como lo hacía...

así practico más también ^^

Etiquetas: blegend, bolivia, webmaster
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:51.