El problema no debe ser la BD, en nuestra empresa usamos la versión 2.0.1 de FireBird y creeme que ya hubiera tenido un gran problema si me hubiera sucedido eso
, como dice
pvizcay, la estructura de la base de datos se ve bien, el problema debe estar en la aplicación, seguramente al momento de guardar las facturas esta eliminando alguna de las anteriores, dices que el problema no es en las transacciones, entonces revisa el algoritmo de grabado con un "paso a paso" para que analices lo que esta haciendo dicha aplicación, no vaya a ser que algun evento que se dispara este haciendo algun estrago
.
Observación: Bueno, note en la estructura de tu BD que el campo factura de la tabla venta es de tipo float, ¿Necesitas que sea float?, pregunto porque me parece que trabaja mejor el double precision, pero si definitivamente necesitas el float me interesaria saber el "¿Porque?", gracias
.