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

Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300 campos

Estas en el tema de Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300 campos en el foro de Bases de Datos General en Foros del Web. Hola, tengo una aplicación web que consta básicamente de tablas y formularios con información que proviene de la base de datos. Los usuarios pueden además ...
  #1 (permalink)  
Antiguo 09/12/2015, 12:27
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300 campos

Hola,

tengo una aplicación web que consta básicamente de tablas y formularios con información que proviene de la base de datos. Los usuarios pueden además de consultar actualizar y editar estos datos.

El número maximo de registros puede llegar a ser 10.000. El problema es que cada registro tiene en torno a 300 campos. ¿Que veis mas recomendable crear varias tablas o creéis que con una no tiene porque pasar nada?

He usado tablas con mucho mayor numero de registros pero no tantos campos por registro y han funcionado ok pero me mosquea que el phpmyadmin se me queda pillao cuando entro en una tabla con muchos campos.

Gracias. Un saludo
  #2 (permalink)  
Antiguo 09/12/2015, 12:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300

Ni una, ni dos, ni cinco, ni diez... Lo mejor es NORMALIZAR.

Una tabla de 300 campos habla a claras de que tu base de datos no está normalizada, con lo que SIN DUDA tendrás problemas de perfomance, inconsistencias, redundancias nocivas y otros inconvenientes propios de una base mal diseñada.
A priori, no puedo decir mas que eso, por experiencia en el tema, porque para saber cuál es el verdadero inconveniente hay que ver la/s tabla/s, y verificar lo que hay que hacer para transformar esa base en algo optimizado.
Eso para comenzar.
Por otro lado, la lentitud de las consultas puede deberse a errores de optimización de las consultas, problemas con la limpieza de los datos, exceso de uso de funciones, falta de índices, y un lago etcétera.

En síntesis: Hay que analizar la base y ver qué se debe hacer para mejorarlo todo. ASí en el aire, solo podemos hacer suposiciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/12/2015, 15:39
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300

Se trata de una cadena de restaurantes. Tiene en torno a 5.000 restaurantes y podrían alcanzar 10.000. Quieren un registro dela mobiliario de cada restaurante (hornos, neveras etc). Lo normal es que cada restaurante tema 1 horno pero algún caso puede llegar a tener 3 por lo que el cliente quiere se le de la opción de poner los 3 (modelo, marca, n serie) por lo que va a tener muchos campos nulos. No va a haber consultas complejas. Lo única que quiere es consultar y actualizar algún dato del restaurante. La consulta a los datos se hace mediante un formulario con desplegables. ..se pueden ir cargando conforme se abren los desplegables. Como normalizarías a primera vista?
  #4 (permalink)  
Antiguo 09/12/2015, 16:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300

Y para eso quieres 300 columnas? si con 3 tablas puedes sacar lo que quieres, una para restaurantes, una para moviliarios y otra para la relacion restaurante_moviliario, y con pocos campos para cada caso......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 11/12/2015, 12:02
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300

Ok, gracias a los dos. Entiendo por lo tanto que es preferible usar varias tablas a tablas con muchas columnas, era la duda. Por cierto que registros creas (o se podría poner. .) en la tabla relación restaurante-mobiliario? Cada restaurante tiene un id, la idea a esa poner ese id en la tabla restaurante y en la de mobiliario por si tuviese que hacer una consulta en ambos sitios.
Gracias. Un saludo
  #6 (permalink)  
Antiguo 11/12/2015, 13:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: Usar una tabla o mejor realizar dos tablas - MYSQL - 10000 registros - 300

Es toda regla de modelado y normalizacion (E/R), cada columna(s) PRIMARIAS (Primary Key) se heredan como FORANEAS (Foreing Key).
__________________
MCTS Isaias Islas

Etiquetas: 300, campo, campos, mysql, registro, registros, tabla, tablas, usar
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 02:44.