Normalización

Hola:
Te explico mi inquietud.
Primero te digo que soy novato en el tema.
Tengo que desarrollar una aplicación (la estoy haciendo en c#.net y MS SQL Server 200) que lleve el inventario de un deposito de un minisuper y no se muy bien como diseñar la base de datos.
En un Form tengo un DataGrid que tiene las siguientes columnas: Código, Nombre, Costo Unidad, Costo Bulto, Precio Mayorista, Precio Minorista, Precio Minorista Góndola, Familia y SubFamilia.
En el Form para dar de alta un nuevo producto tengo dos Listas Desplegables. Uno para las Familias (Por ejemplo Bebidas) y otro para las Subfamilias (Por ejemplo la Familia Bebidas tiene dos Subfamilias, que son Con Alcohol y Sin Alcohol).
Lo que quiero lograr es que al seleccionar cierta Familia (Por ej: Bebidas), en la lista Subfamilias solo me muestre las subfamilias correspondientes a esa familia (Por ej: Con alcohol y Sin Alcohol).
Mi problema es que no se muy bien como diseñar la DB.
La tabla que había diseñado primero tenia la siguiente estructura:
Código(key)
Nombre
Costo Unidad
Costo Bulto
Precio Mayorista
Precio Minorista
Precio Minorista Góndola
Familia
SubFamilia.
Luego le aplique la 1º Forma Normal y me quedo así:
Tabla tblProductos:
Código (Key)
Nombre
Costo Unidad
Costo Bulto
Precio Mayorista
Precio Minorista
Precio Minorista Góndola
Familia
abla tblFamilias:
Código (key)
Nombre (key)
Descripción
Ahora el problema es ¿Dónde ubico las subfamilias?
¿Cómo quedaría el diseño de la base de datos?
Respuesta
1
¿Qué te parece esto?
Tabla Familias
IDFamilia
SFamiliaDescripcion
Tabla SubFamilias
IDSubFamilia
IDFamilia
SSubFamiliaDescripcion
Y en tus productos
Tabla Productos
Nombre
Costo Unidad
Costo Bulto
Precio Mayorista
Precio Minorista
Precio Minorista Góndola
IDFamilia
IDSubFamilia
De este modo puede acceder a todas las subfamilias de una familia o a todos los productos de determinada familia o subfamilia...
easy =) Salu2

2 respuestas más de otros expertos

Respuesta
1
Disculpa la demora.. bueno tu problema es solo de indice lo que puedes hacer es agregar un identificador a cada familia ya sea en una columna o por los códigos ej
por culmna
agrgas un BCA (bebida con alcohol)
BSA (sin alcohol)
Así permites al programa ir depurando la otra manera es
por código ej BA0001 con alcohol BS0002 sin alcohol o cualquier otra forma.. es tu orden...
Respuesta
1
La verdad es que eso no puede ser el resultado de aplicar la 1ª forma normal. Dicha forma se cumple cuando sólo existe un valor asociado a cada campo en cada fila de la tabla, es decir, cuando no se permiten atributos multivaluados. En este caso, no se ve que ocurra esto. Mejor dime cuáles serían los significados de cada campo de las tablas y a ver si te puedo dar un esquema normalizado. No seas escueto al explicarlos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas