Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/06/2014, 07:53
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: 16 años, 5 meses
Puntos: 2658
Respuesta: registros duplicados

Cita:
Iniciado por Ausberto Ver Mensaje
hola a todos..
resulta que tengo una tabla llamada ventas con la siguientes estructura

id LLAVE (PRIMIARY KEY) AUTONUMERICO
numfac NUMERICO
cliente VARCHAR
monto DOUBLE
fecha DATE
dosif dosificacion
usuario VARCHAR

COMO PUEDO CONTROLAR QUE NO SE REPITA EL NUMERO DE FACTURA (numfac) AL INSERTAR DATOS DESDE UN RED CON 3 PCS, resulta que es un sistemita punto de venta y resulta que si se pueden repetir siempre y cuando sea distinta dosificacion campo (dosif), he ntentado muchas cosas y nada al parecer cuando presionan al mismo tiempo insertar dos pcs siempre se repite el numero de factura de la misma dosificacion, estoy utilizzando vb 2008 y Mysql.
ayuda porfavor es urgente....
Por un lado, habría que saber hasta qué punto puedes tu modificar la base de datos, por cuanto es muy probable que haya ererores de diseño.

Por otr lado, es más un tema de diseño de sistemas que propiamente de BBDD.
La cosa es simple en alguna medida:
1) El número de factura no se genera localmente en los clientes, sino que se consulta a la base.
2) Cuando se consulta, se debe hacer una reserva da ID (hay un capitulo entero del manual de referencia ed MySQL sobre este tema).
3) Usualmente, las facturas se deben generar si y sólo si se confirma la venta, y para ese momento ya se cuenta con todos los datos para dar el alta de la factura completa. NO se debe generar un número de factura antes de eso, y no se debe inciial la gestion del pago hasta que la factura no se genere.
4) En el caso extremo, si dos maquinas cliente puede acceder simultáneamente, se deben usar transacciones para evitar las inconsistencias.
5) En el caso de haber concurrencia, también debe hacerse un proceso de validacion de existencias al momento de generar l afactura, porque otra venta podría haber realizado las restas de stock y no ser posible completar esa venta.

Tal vez puedas ver en este contexto que hacer un sistema multiusuario de ventas no es una tarea sencilla, y hay que diseñar con cuidado.
No es posible "adaptar" un sistema monousuario a multiusuario en pasos simples. Hay mucho por rediseñar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)