Hola de nuevo Zendi,
es muy interesante tu proyecto y me gustaría aconsejarte bién, pero no puedo pretender dar con la clave en apenas un comentario en un foro.
Para que te hagas una idea, yo tardé 6 meses en contruir la estructura Mysql de mi web gestorligas.com, pensando en todos los datos que quería mostrar, cómo los iba a relacionar, cómo los iba a consultar, pruebas de rendimiento, optimizar, etc.
Dicho esto, el tema divisas hay que tener en cuenta que fluctuan. Si hoy un dollar vale 0,95 euros, mañana puede ser al revés.
Esto quiere decir que si hoy haces una operación que parece beneficiosa por el cambio de divisas, el año que viene si consultas la misma operación con el valor que tenga la divisa ese día, puede que sea con pérdidas y estará mostrando información equivocada.
De modo que entra la posibilidad de tener una tabla con el cambio de divisas en cada fecha de la operación o en cada día, semana, mes, dependiendo de cuándo actualices el valor de las divisas. Por ejemplo con estos datos:
ID_divisa, Fecha, Nombre, Valor
En las consultas de operaciones entonces se pregunta por el valor de la divisa en la fecha que se hizo la operación y te saldrá el valor correcto. No se si me he explicado.
En cuanto a la DB que muestras veo una repetición de datos de monto y fecha en varias tablas.
Como dije al principio, no puedo dar una respuesta correcta en sólo un post sin saber cómo funciona un negocio, pero sí te puedo decir que repetir datos en una DB es un error.
Hay lo que se llama "Normalización de bases de datos" 1nf, 2nf, 3nf 4nf que son el número de normas formales que debe cumplir tu DB para saber que está bien hecha (almenos hasta la 2nf o 3nf). Puedes buscar en Google.
En mi opinión personal, creo tienes margen de mejora en las tablas ingresos, gastos1,deuda y cierredeuda.
Gastos e ingresos son tablas que se entienden bién, pero las otras creo que son redundantes. Una deuda es lo que falta por pagar (una resta) y el cierre deuda es cuando ya no queda nada por pagar (resta igual a cero).
Tal vez te interesa guardar la fecha del último pago pero siempre veo que se repiten los datos monto y fecha.
En fin, no puedo profundizar mucho más y sólo tú sabes lo que quieres hacer y cómo lo quieres hacer.
Pero espero haberte inspirado un poco.
Un saludo!