Alcune cose:
-
Normalizza lo stato della fattura in modo che sia la propria tabella di ricerca, quindi inserisci un ID stato nella tabella della fattura anziché "Inviata", "Annullata" e così via.
-
Sicuramente mantieni l'importo della fattura. Potrebbe essere diverso dal valore del prezzo in tbl_order.total se dovessi tenere conto degli sconti. In ogni caso, i dati numerici sono economici da memorizzare e saranno più veloci da interrogare se non devi fare alcun join.
-
Assegna alla tabella Pagamenti la propria colonna ID e impostala come PK.
-
Il resto sembra ok. È opportuno avere due tabelle, una per i pagamenti in uscita e l'altra per i pagamenti in entrata. Se hai davvero solo bisogno di conservare le informazioni sull'importo e sulla data, non credo che tu debba complicare ulteriormente le cose.
Grazie, Chris.