Inicio > Bases de datos > b00tes > Diseño de BD - Productos

Diseño de BD - Productos

Experto:
Usuario:
Fecha: 13/08/2005
Valoración: (5,00 sobre 5) Categoría: Bases de datos
12/08/2005
pablonajar, usuario preguntando en Bases de datos
Usuario
Que tal, perdon por mi ignorancia pero necesitaria un consejo sobre el diseño de un BD (.mdb):

La empresa Tiene:
* Productos: A - B - C,...,n (n Productos)
* Proveedores: P1, P2, P3,....,Pn (n Proveedores)

Relación: Los proveedores venden a la empresa cualquier producto que ella tiene en su stock, es decir:

P1 puede vender producto A,B,C,...,n
P2 puede vender producto A,B,C,...,n
P3 puede vender producto A,B,C,...,n
...
Pn puede vender producto A,B,C,...,n

Pero el precio ofrecido a la empresa difiere entre los proveedores, es decir:

Costo del producto A
P1= $5
P2=$4,80
.....

Costo del producto B
P1= $7
P2=$6,20
.....

La empresa evalua las ofertas de sus proveedores para realizar las compras y puede tener productos de un proveedor, en stock y comprar a otro precio el mismo producto a un proveedor diferente, es decir:

Se tiene en stock en la empresa 5 Un. del Producto A que fue comprado al Proveedor P1 a $4,50 Precio Unitario, y la empresa decide comprar la Oferta del producto A ofrecida por el Proveedor P2 a $4,30 Precio Unitario.

Las Preguntas son
* la Tabla Productos debe Tener el Campo IdProveedor?
* la Tabla Productos debe Tener el Campo Precio?
* O se debe crear un relacion entre Tabla Productos y Proveedores, en donde se colocará alli el campo precio,Ej:
-Tabla Prod-Prov
IdProd - idProv - Precio

* Crear dicha Tabla perjudicaria en las consultas (performance)?

Perdon por lo extenso que fui pero queria mostrar la situacion de la mejor manera. Desde ya muchisimas Gracias.
Pablo N.
Argentina.
12/08/2005
pablonajar, experto respondiendo en Bases de datos
Experto
Hola. Yo crearía la tabla de Productos-Proveedores.
Si unes la información de proveedor y precio a la información del producto, no puedes comparar precios, ya que cada proveedor tiene su propio producto.
La única forma de compararlos sería por el nombre (las referencias probablemente cambien de un proveedor a otro) y nadie garantiza que al dar de alta el mismo producto para proveedores distintos, el usuario lo escriba exactamente igual.
Por ejemplo:
Regla 30cm
Regla 30cm.
Regla 30 cm
Regla de 30 cm
Regla 30

Además, si tienes muchos proveedores por artículo, tendrás el nombre de producto replicado muchas veces en la base de datos (ocupando espacio) y en el peor de los casos, será el usuario el que haya tenido que escribir 5 veces o más "el mismo" nombre.
12/08/2005
pablonajar, usuario preguntando en Bases de datos
Usuario
Gracias ante todo por tu interes, resumiendo, quedarian asi las relaciones?:

tblPRODUCTOS:
* IdProd
* CodProd
* NomProd
* PrecioVTA (Este es el precio unificado que figura en la consulta del usuario del programa, este se lo determina comparando los precios de un mismo producto de diferentes proveedores "PrecioProd_Prov" en tabla Prod_Prov ).
....

tblPROVEEDOR:
* IdProv
* CodProv
* RazSocProv
.....

tblPROD_PROV:
* IdProv
* IdProd
* PrecioProd_Prov

Es lo que se me imagina.
Pablo N.
Argentina.
13/08/2005
pablonajar, experto respondiendo en Bases de datos
Experto
Así está bien.
Quizá os haga falta en tblPROD_PROV la referencia del producto para el proveedor en concreto, si es que utilizais la referencia para hacer el pedido.

Una idea: si vais a registrar también los pedidos en la base de datos, deberiais guardar una copia del precio en dicho pedido. Así no le afectará si se cambia el precio en tblPROD_PROV en un futuro.
Una idea alternativa es la de incluir las fechas de validez en tblPROD_PROV. Esto será mas complejo, pero os permitirá estudiar la evolución de los precios de vuestros proveedores para ver si necesitais adaptar vuestros precios de venta al público.

Saludos.
13/08/2005
pablonajar, usuario preguntando en Bases de datos
Usuario
La verdad, estoy muy agradecido, gracias.
Enlaces patrocinados