Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/11/2005, 09:02
Avatar de BrujoNic
BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 6 meses
Puntos: 655
Reciví tu MP pero prefiero responder aquí para que otros puedan aportar y también para que si a alguien se le presenta un problema similar, pueda tener una guía:

A continuación voy a explicar una forma sencilla para referencia y luego agregas o quitas campos según tus necesidades. Lo que está en negro, son nombres de tablas, lo que está en rojo, son llaves primarias y lo que está en verde es llave secundaria o foránea.

FACTURA
id_factura
id_cliente
fecha
total
impueto
total_final

DETALLE
id_factura
id_producto
cantidad
precio

INVENTARIO
id_producto
descripcion
existencia
precio_compra
precio_venta

CLIENTE
id_cliente
nombre
direccion
telefono

Ok, cómo funciona esto?
Vas a tener una FACTURA con un número consecutivo UNICO en la cual va a estar relacionado con el id_cliente para sacar los datos que te interesen como el nombre, dirección, etc.

En la tabla DETALLE, vas a incluir la compra que va a realizar el cliente y es ahi donde la cantidad de productos por factura va a ser de n. Como podes ver, la llave primaria en DETALLE va estar conformada por id_factura y id_producto pero la relación entre FACTURA y DETALLE va a ser por id_factura, o sea, una relación de 1 a n pero SIN duplicar registros ya que la llave en DETALLE es compuesta. En detalle únicamente vas a hacer referencia al id_producto que se encuentra en la tabla de INVENTARIO y de ahi podes sacar la descripción del producto y el precio de venta. En la tabla de DETALLE debes guardar el precio del producto en el momento de la compra para que te sirva de histórico ya que los precios van a variar con el tiempo y necesitas saber a que precio se vendió un producto a una fecha determinada.

En INVENTARIO, vas a registrar tus productos y la relación que va a tener con DETALLE es por el campo id_producto. En esa tabla vas a tener precio_compra (precio a como te venden el producto tus proveedores) y precio_venta (el precio a como lo vas a vender). Otro dato importante es la cantidad en existencia para saber si tenes disponible en ese momento.

Por último CLIENTE, ahí simplemente vas a almacenar los datos de tus clientes y va a estar relacionado con FACTURA por id_cliente para obtener los datos del mismo.

Esto es un ejemplo sencillo de facturación pero funcional. Dependiendo de tus necesidades, esta puede crecer en cantidad de tablas o campos.

En la carrera de ingeniería de sistemas, hay un curso llamado BD en la cual te explican lo que es la normalización para evitar datos repetidos, atomicidad de datos y otros.

Si no estas llevando dicha carrera y estas interesado, te aconsejo que busques en internet NORMALIZACION DE BASES DE DATOS o FORMAS NORMALES.

Saludos y espero esta pequeña guía te oriente un poco más.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL