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

Cómo organizar Base de Datos

Estas en el tema de Cómo organizar Base de Datos en el foro de Mysql en Foros del Web. Hola a todos! Siempre leo el foro y me resulta de mucha utilidad para salir de alguna duda concreta. En este caso quería hacerles una ...
  #1 (permalink)  
Antiguo 05/05/2012, 07:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 1
Cómo organizar Base de Datos

Hola a todos!
Siempre leo el foro y me resulta de mucha utilidad para salir de alguna duda concreta. En este caso quería hacerles una consulta sobre una cuestión que es más de criterio que técnica.

Estoy organizando una base de datos de un supermercado y no sé qué es lo que resulta más conveniente de estas dos opciones:

1 - Tener una sola tabla "Productos" donde se guardan absolutamente todos los productos del supermercado.
2 - Crear varias tablas y separar los productos según categoría. Ejemplo: tabla "Perfumería", tabla "Lacteos", tabla "Limpieza", etc.

Cualquiera de las dos alternativas me resultan válidas, ya que en caso de tener una sola tabla "Productos" podría clasificarlos mediante un campo "Categoria" dentro de la misma tabla.

Creo que esta opción me resultará más sencilla a la hora de programar pero me surge la duda al pensar en la cantidad de registros que puede llegar a tener con el tiempo y si llegado un punto se tornarían demasiado lentas las consultas o consumirían muchos recursos del servidor por tener que buscar en un número tan alto de registros.

Al clasificar los productos en distintas tablas el tamaño de cada una de ellas sería mucho menor pero me resultaría mucho más engorrosa la programación y las actualizaciones futuras.

La pregunta concreta es ¿Cuál de las dos alternativas usarían? y ¿es válida mi preocupación por el número alto de registro o no tiene sentido?.

Muchas Gracias y saludos.
  #2 (permalink)  
Antiguo 05/05/2012, 08:57
 
Fecha de Ingreso: diciembre-2011
Mensajes: 64
Antigüedad: 12 años, 11 meses
Puntos: 7
Respuesta: Cómo organizar Base de Datos

mira por lo que tengo entendido, que eh leido mysql soporta bien hasta 50 millones registros. hacelo en una tabla.
  #3 (permalink)  
Antiguo 07/05/2012, 10:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo organizar Base de Datos

Gracias Gastón, no sabía eso! En ese caso seguro me conviene hacerlo en una sola tabla.
Saludos.
  #4 (permalink)  
Antiguo 08/05/2012, 06:25
Avatar de educhip  
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 84
Antigüedad: 16 años, 6 meses
Puntos: 6
Respuesta: Cómo organizar Base de Datos

Hola, efectivamente lo puedes hacer en una tabla, de hecho en una base de datos deben estar todos los artículos o productos en la misma tabla, es la forma más eficiente. Si tuvieras muchísimos registros, 1 millón por ejemplo, ya deberías contemplar algún método rápido de búsqueda para que la consulta no tarde demasiado.

Eso en cuanto a la tabla...

Para crear subcategorías de productos debes tener un campo llamado subcategoría, donde la almacenas, pero después debes crear una tabla para cada categoría principal que contenga las subcategorías que ésta contiene.

Por ejemplo tienes las categorías lacteos, limpieza, y perfumeria, y cada una tendrá subcategorias, entonces te creas una tabla que se llame por ejemplo subcats_lacteos, que contendrá el listado de subcategorías disponibles. Esto lo vas a necesitar si estas haciendo un panel de gestión de contenidos, donde añades categorías y subcategorías.

Saludos.
  #5 (permalink)  
Antiguo 09/05/2012, 19:54
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: Cómo organizar Base de Datos

El diseño de una base de datos es muy importante, debes evitar la redundancia de datos entre otras cosas.

http://es.wikipedia.org/wiki/Normali...bases_de_datos

Lo ideal a mi parecer es almacenar todos los productos en una tabla al igual que te ha recomendado educhip y luego relacionarlos con distintas categorías que irán almacenadas en otra tabla, por ejemplo:

Tabla artículos ( id_articulo, id_categoria, nombre, descripcion, precio, stock )
Tabla categorías ( id_categoria, nombre_categoria )
Tabla subcategorías ( id_subcategoria, id_categoria, nombre_subcategoria )

De esa forma no se repetirán datos y será más eficiente, simplemente tienes que relacionar las tablas y listo.

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #6 (permalink)  
Antiguo 10/05/2012, 16:51
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: Cómo organizar Base de Datos

es importante tambien la indexacion de tus productos , yo manejo una aplicacion de una zapateria y ahy cada producto se divide en subproducto debido a las tallas y colores y normalizando e indexando la tabla he conseguido tener un rendimiento que en consultas masivas de 7000 mil registros que sin normalizar ni indexar tardaban 3 minutos aprox reducirla normalizando e indexando a solo 3 segundos echale un ojo a los temas de optimizar mysql y nunca tendras problemas con el rendimiento de tu base y tu servidor

Etiquetas: organizar, registros, tabla, campos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:19.