Ver Mensaje Individual
  #8 (permalink)  
Antiguo 31/01/2016, 11:40
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: un registro grande para un cliente(persona)

No es UNA tabla. Es el esquema lo que está mal.

Necesitas:
Cita:
CLIENTE(cliente_id, nombre_cliente, rut_cuit, direccion_cliente, ....)
PRODUCTO(producto_id, codebar_producto, nombre_producto, precio_unit_producto, stock_producto, ...)
FACTURA(nro_factura, fecha_factura, cliente_id, importe_total, descuentos, impuestos_factura....)
DETALLE_FACTURA(nro_factura, nro_item, producto_id, cantidad)
A tener en cuenta:
1) Diferentes medidas de envases, volúmenes o presentaciones en un producto, son diferentes productos de la misma marca, aunque todos sean del mismo tipo de substancia o elementos físico. Desde el momento en que tienen diferentes presentaciones no son el mismo producto. Usualmente un cambio de packaging, por ejemplo, representa un código de barras diferente.
2) NO se almacenan subtotales, ni totales. No se almacena ningún dato calculable, a excepción de aquellos que representan cobranzas, dado que el valor alli es final. Es decir el único momento en que el monto y subtotales de una factura se emiten es con el comprobante de pago, que representa una parte separada de la emisión de la factura, y es un esquema de tablas especifico. Los datos calculables se generan en las consutlas de los datos, por lo que guardarlos en la tabla es perdida de espacio y riesgo de inconsistencia de datos.
3) No se almacenan datos del cliente en la factura. Es la consulta la que devuelve esos datos tomados de la tabla Cliente.

Partiendo de un esquema como el que te describo muy sucintamente, elcómo se hace en la aplicación ya te lo describí:
Cita:
1) Dar de alta la cabecera del pedido en OrdenPedido, con los datos de Id del cliente y fecha.
2) Recuperar el numero de pedido si este se genera en forma autoincremental.
3) Recorrer uno a uno los registros virtuales del pedido en la aplicación e insertarlos en la tabla de DetallePedido, usando comodato de entrada el numero de pedido ya obtenido, el numero de producto, la cantidad y el descuento si lo hay.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)