Estructura de bases de datos: Una tabla o varias?

  • Autor Autor Andresledo
  • Fecha de inicio Fecha de inicio
A

Andresledo

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola,

Siempre me ha saltado una duda en el diseño de las bases de datos, básicamente en temas de rendimiento que caso sería mejor. Pongamos el ejemplo que queremos guardar registros que cuelgan de una determinada categoría, tenemos dos opciones:
  1. Crear dos tablas, una que contenga el listado de categorías y la otra los registros enlazados con una clave foránea.
  2. Crear una tabla para cada una de las categorías.
Personalmente me gusta bastante más la primera opción por parecerme más ordenado, pero me gustaría saber cuando se manejan muchos registros que daría un mejor rendimiento?
 
Si, la primer opción es la que más utilizan (así lo hace Wordpress). Crear muchas tablas, se hace pesado y consume muchos recursos.
 
Es la primera opcion, pocas veces se hacen tablas para cada categoria (a no ser que fuese enorme), y con millones de registros, por cada categoria. Las webs que tengo yo estan diseñadas con una tabla que contiene las diferentes categorias, y como no una clave principal que enlaza del ID.
 
Primera opción salvo en el caso de cientos de miles o millones de registros por categorías.
 
Tienes que normalizar tu base de datos
 
Hola,

Siempre me ha saltado una duda en el diseño de las bases de datos, básicamente en temas de rendimiento que caso sería mejor. Pongamos el ejemplo que queremos guardar registros que cuelgan de una determinada categoría, tenemos dos opciones:
  1. Crear dos tablas, una que contenga el listado de categorías y la otra los registros enlazados con una clave foránea.
  2. Crear una tabla para cada una de las categorías.
Personalmente me gusta bastante más la primera opción por parecerme más ordenado, pero me gustaría saber cuando se manejan muchos registros que daría un mejor rendimiento?

Hola, la primera opcion siempre es la mejor, es mas que nada por un tema de normalizacion que comentaron mas arriba, y aunque sean muchos registros, se puede hacer de todas maneras, pero siempre la mejor opcion es poder manejar indices en tus tablas y el rendimiento va a depender de que tan compleja sea su consulta, y que tanto registro deba obtener.
Saludos.
 
La primera, la carga del servidor de abrir y cerrar muchas tablas diferentes es mayor que la de tener uno o dos niveles más en el árbol de indices. O sea, es más rápido buscar en una gran tabla que en decenas de pequeñas. Además es más fácil para programar y mantener. ¿Cómo harás los queries cuando no sabes cuantas tablas vas a tener en el futuro?
 
Cómo harás los queries cuando no sabes cuantas tablas vas a tener en el futuro?
Se trabaja a traves de LEFT, RIDHT o INNER JOIN y asi se van uniendo los datos. En un principio no lo sabia jejje
 
Se trabaja a traves de LEFT, RIDHT o INNER JOIN y asi se van uniendo los datos. En un principio no lo sabia jejje
Sí, pero ¿vas a modificar los queries cada vez que agregues una tabla o vas a hacer un query que preguntas por las tablas de categorias que ya existen y harás los JOINs? A eso me refiero a que es un dolor de cabeza mantener esa estructura
 
Gracias por vuestras opiniones
 
Atrás
Arriba