Algunas cosas:
-
Normalice el estado de la factura para que sea su propia tabla de búsqueda, luego coloque un Id. de estado en la tabla de facturas en lugar de 'Enviado', 'Cancelado', etc.
-
Definitivamente mantener el monto de la factura. Es posible que tenga que ser diferente del valor del precio en tbl_order.total si alguna vez necesita tener en cuenta los descuentos. En cualquier caso, los datos numéricos son baratos de almacenar y serán más rápidos de consultar si no tiene que hacer uniones.
-
Asigne a la tabla Pagos su propia columna de ID y conviértala en PK.
-
El resto se ve bien. Hay un caso para tener dos tablas, una para pagos salientes y otra para pagos entrantes. Si realmente solo necesita conservar la información sobre la cantidad y la fecha, entonces no creo que deba hacerlo más complicado.
Gracias, Chris.