Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/10/2010, 01:20
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Relaciones en BDD mysql

No.

Creo que deberías buscar algo de teoria para poder abanzar.

Una relación te asegura, entre otras cosas, que en el valor del campo FK solo pueda ser nulo o un valor contenido en el campo referenciado. En tu caso te asegura que no puedas vender un producto que no tienes registrado, es decir si esta en la tabla productos lo podras vender, pero no sabe nada de las existencias que puedas tener (si esta registrado pero con cantidad=0 tambien lo podrias vender si no lo controlas por otros mecanismos).

Despues de hacer una venta INSERT INTO... debes hacer la minoración de stocks

Código SQL:
Ver original
  1. UPDATE productos SET cantidad=cantidad-X WHERE cod_producto=Y

Donde X es la cantidad vendida y Y el codigo del producto.

En la estructura que nos das te faltaria como mínimo un campo para poner la cantidad comprada por el Cliente (X), ya que quizas no se vendan de uno en uno...

Pero!!!

La estructura para lo que quieres hacer normalmente consta de mas tablas


Productos

idProducto PK
Nombre
idMarca FK referenciada a Marcas
PVP
...mas características...

Marcas
idMarca
Nombre
...mas...


Proveedores

idProveedor PK
Nombre
...mas...

Clientes
idCliente PK
Nombre
...mas..


Almacen
idEntrada PK
idProveedor FK referenciada a Proveedores
idProducto FK referenciada a Productos
Fecha
CantidadInicial
Salidas
PrecioCompra

Ventas
idVenta PK
fecha
idCliente FK referenciado a Clientes
idProducto FK refrenciado a Productos
cantidad
PrecioVenta
...mas...

A partir de esto puedes empezar a hacer algo... deberias tener en cuenta temas de tecnicas contables a la hora de descontar las cantidades del almacen (busca FIFO LIFO hay un post mio donde explico que es)

Como ves es un tema amplio, esta no es la unica posible solución, ni estoy seguro que sea completa, ni del todo correcta, tomala como un ejemplo.

Quim

Última edición por quimfv; 29/10/2010 a las 01:37