E il prezzo? Metti che adesso un prodotto costa 20 euro. Quando crei il riassunto dell'ordine (se lo crei ogni volta dinamicamente), tu il prezzo di ogni riga lo prendi dalla tabella prodotti, se ho capito bene la struttura che hai presentato. Tra un po di tempo, il prezzo di questo prodotto cambia, diventa 25. Ma un utente vuole guardare l'ordine che ha fatto prima. Quindi, se l'ordine lo generi dal database, non avrai piu' il vecchio prezzo nell'ordine, ma il nuovo.
O forse non ho capito io qualcosa?