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

Relaciones en BDD mysql

Estas en el tema de Relaciones en BDD mysql en el foro de Mysql en Foros del Web. Hola a todos, estoy empezando con dreamweaver y ya doy la pelea con el diseño y todo eso, pero la limitante que tengo es en ...
  #1 (permalink)  
Antiguo 28/10/2010, 11:44
 
Fecha de Ingreso: octubre-2010
Ubicación: Mérida
Mensajes: 3
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Relaciones en BDD mysql

Hola a todos, estoy empezando con dreamweaver y ya doy la pelea con el diseño y todo eso, pero la limitante que tengo es en Bases de Datos. Ya se hacer inserciones, actualizaciones y borrado de registros en las tablas usando dreamweaver, el problema que tengo es que no he podido entender algo acerca de la base de datos que tengo, he creado la siguiente BDD en mysql para aprender:
Tabla1: PRODUCTOS (cod_pro, descripcion, valor, cantidad)
Tabla2: CLIENTES (nombre, telefono, producto_comprado)

Cuando el usuario ingresa una nueva venta, llenando la tabla CLIENTES, se llena el producto_comprado, y se debe disminuir el campo Cantidad de la otra tabla llamada PRODUCTOS. Esto ocurre automaticamente? si al crear la base de datos yo hice una relacion entre las dos tablas esto ocurrirá automaticamente? o debo poner el codigo para la insercion del nuevo valor (cantidad = cantidad - 1), y poner este codigo en el botón que el usuario presiona al concretar la venta?

Como ven es una duda muy basica pero no he podido aprenderlo de ningun tutorial que he leido, gracias por su ayuda.
  #2 (permalink)  
Antiguo 29/10/2010, 01:20
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

Etiquetas: dreamweaver, relaciones
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 18:34.