Provo a dettagliare campi e tabelle, tutti i nomi sono esempi per rendere l'idea:
TblCommesse: Commessa (PK, Long), altri campi non influiscono
TblOfferte: IDofferta (PK, Long), IDfornitore (FK, Long), Offerta (String), Dataofferta (Date), Importo (Currency)
TblOrdini: IDordine (PK, Long), IDfornitore (FK, Long), Ordine (String), Dataofferta (Date), Importo (Currency)
TblDdt: IDddt (PK, Long), IDfornitore (FK, Long), DDT (String), Dataofferta (Date), IDfattura (FK, Long)
TblFatture: IDfattura (PK, Long), IDfornitore (FK, Long), Fattura (String), Dataofferta (Date), Importo (Currency)
Poi ho messo in relazione ogni tabella con le altre per evitare di perdere il tracciamento di tutti i documenti, quindi:
TblOfferta-ordine: IDoffertaordine (PK, Double), IDofferta (FK), IDordine (FK)
TblOfferta-ddt: IDoffertaddt (PK, Double), IDofferta (FK), IDddt (FK)
TblOfferta-fattura: IDoffertafattura (PK, Double), IDofferta (FK), IDfattura (FK)
TblOrdine-DDT: IDordineddt (PK, Double), IDordine (FK), IDddt (FK)
TblOrdine-fattura: IDordinefattura (PK, Double), IDordine (FK), IDfattura (FK)
Infine stavo definendo le relazioni con la commessa e avevo pensato a queste due tabelle:
TblCommessa-offerta-ordine: IDcommessaoffertaordine (PK, Double), Commessa (FK), IDofferta (FK), IDordine (FK), Importodaricevere (Currency)
TblCommessa-ddt-fattura: IDcommessaddtfattura (PK, Double), Commessa (FK), IDddt (FK), IDfattura (FK), Importoricevuto (Currency)
Troppo farraginoso??
Come dicevo sopra, questa soluzione comporta possibili valori vuoti in queste due ultime tabelle perche' potrei avere nella prima tabella IDofferta senza IDordine o viceversa e nella seconda tabella IDfattura senza IDddt. Inoltre dovrei correggere ogni volta l'importo da ricevere in base agli arrivi di merce.
Pero' non riesco a trovare una strada migliore...