Creo que que lo que tienes que ver en toda base de datos es la relación entre los distintos tipos de objetos .. ejemplo:
1) Consideremos un documento
Factura, éste es un
objeto que tiene varios
atributos (Nº, fecha, etc), y otros
sub-objetos (por ejemplo cada una de las lineas del detalle, también se podría decir que el proveedor es un objeto, etc).
2) El cliente siempre es uno, la cantidad de líneas es variable.
2) Basado en el análisis anterior yo haría

:
a) Una tabla que llamaría Factura_Cab por ejemplo con los campos que aparecen una vez en la factura (en el documento de papel), algo así:
Cita:
ident <- clave primaria integer autoincremental
numfactura
fechafactura
condicion (¿condiciones de entrega?)
terminos
codusuario
codcliente
total
|
b) Una tabla que llamaría Factura_Det con los campos que se asocian a cada una de las lineas más un identificador y una clave foránea a Factura_Cab:
Cita:
Ident <- Clave primaria, integer autoincremental
Factura <- Clave foránea a la tabla Factura_Cab.
fechaVencimiento (vencimiento del articulo ¿no?)
impuesto
precioVenta
subtotal
descuento
codarticulo
cantidad
|
saludos