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

Diseño de una base de datos para artículos muy diferentes

Estas en el tema de Diseño de una base de datos para artículos muy diferentes en el foro de Bases de Datos General en Foros del Web. Hola todos: Estoy intentando diseñar una base de datos para guardar información de productos muy diferentes entre si, es decir, que puede haber artículos que ...
  #1 (permalink)  
Antiguo 20/11/2013, 08:04
 
Fecha de Ingreso: marzo-2007
Mensajes: 127
Antigüedad: 17 años, 1 mes
Puntos: 2
Diseño de una base de datos para artículos muy diferentes

Hola todos:

Estoy intentando diseñar una base de datos para guardar información de productos muy diferentes entre si, es decir, que puede haber artículos que tengan características que otros no, por ejemplo, un libro tiene el ISBN y una cámara fotográfica no, pero ésta tiene características que no tiene un libro.
Tengo claro el diseño de una tabla para guardar las características comunes a todos ellos (Código de barras, Nombre, precio, IVA, etc.), pero no se cómo diseñar las tablas con los atributos diferentes:

- ¿Diseño una única tabla con absolutamente todos los campos para cada uno de los registros y sólo relleno los necesarios para cada uno?.
- ¿Diseño una tabla adicional para cada tipo de artículo con sus campos correspondientes además de una general y las relaciono con la tabla con los campos comunes?. En este caso, ¿cómo se en qué tabla están los campos concretos para un artículo almacenado en la primera tabla?.

Espero haberme explicado.

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 23/11/2013, 16:58
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Diseño de una base de datos para artículos muy diferentes

Cita:
¿Diseño una tabla adicional para cada tipo de artículo con sus campos correspondientes además de una general y las relaciono con la tabla con los campos comunes?. En este caso, ¿cómo se en qué tabla están los campos concretos para un artículo almacenado en la primera tabla?.
No hay una regla fija sobre lo que debe hacerse con los "datos adicionales" de un producto. Depende mucho de qué datos son, y para qué se usarán. Sí, en caso de precisarse, se recomienda analizar los datos que puedan definirse como comunes, aun ante productos distintos.
Por ejemplo: Volumen, longitud, peso, etc, pueden ser valores conceptualizados como "presentación", y el tipo de medida, ser definido como un atributo ENUM, por ejemplo. Eso evitará tener que definir múltiples campos para una misma idea base, y le aportará flexibilidad como para usar sólo dos columnas para gestionar cuatro o cinco tipos de unidades de medición distintas.
Por regla general, no se almacenan datos que no vayan a tener uso al momento de la venta, por lo que si lo que varía es el color del empaque, el papel de las etiquetas, o cosas así, no son muy relevantes.
Además, si todos los productos tienen su código de barras, es muy probable que esa información ya exista dentro de una base de referencia de los mismos, ya que si te fijas, el mismo producto, en sus diferentes presentaciones, colores, etc, tienen diferentes números de código de barra. Incluso si fuesen libros, el ISBN ( su correspondiente EAN) cambian dentro de la misma editorial, para el mismo libro, y en la misma edición, si el tamaño del libro es distinto (se debe registrar uno diferente por cada tamaño).
Con esto quiero decirte que debes acotar la información a lo realmente relevante. A lo que se usará, y luego el tema de los precios se administra por código de barras, no por sus descripciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, diseño, registro, tabla
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 09:02.