Cita: esto pienso yo me genera un problema para tener un campo con llave foránea a diversos campos de diversas tablas.
¿Cómo solucionarían este problema?
Ese problema de la convergencia entre proveedores y clientes debería darte ya la pista: No puedes tener una tabla movimiento, porque no sólo las entidades Ingreso y Egreso son distintas, sino que sus dependencias también lo son.
El problema es que estás confundiendo
entidades con
tablas, y no son lo mismo.
El hecho de que dos tablas sean iguales en campos, y tipos de datos, no significa que representen lo mismo. Y si no representan los mismo, si representan entidades diferentes, son tablas distintas.
Punto.
Empieza de nuevo y pon dos tablas diferentes una para egresos y otra para ingresos.