Consiglio su come sviluppare

di Anonimizzato15483 il
3 risposte
Ciao a tutti,
sto realizzando un programma nel quale archiviare delle ricette e calcolare il relativo costo. Semplificando, ho strutturato la cosa così:

tblIngredienti (IDIngrediente, nomeIngrediente, prezzo/kg)
tblRicette (IDRicetta, nomeRicetta)
tblIngredientiRicetta (quantitàIngrediente, IDRicetta, IDIngrediente)

Questa struttura mi ha permesso di inserire tutte le mie ricette di base e calcolarne il relativo costo al kg complessivo.
Il problema nasce quanto ho la necessità di utilizzare una ricetta inserita come ingrediente per una nuova ricetta. La soluzione più percorribile mi è sembrata quella di usare una query per creare un nuovo record nella tabella ingredienti che avesse lo stesso nome e prezzo/kg ottenuti della ricetta stessa. In questo modo questo nuovo ingrediente, ottenuto da una ricetta precedentemente inserita, risultava disponibile per altre ricetta.

Tutto funziona chiaramente sino a quando non aggiorno i prezzi. In questo caso questi ingredienti ottenuti dai dati di ricette inserite non si possono aggiorantare.

Come valutate la cosa e come mi consigliate di procedere?

Un grazie anticipato!

3 Risposte

  • Per essere più specifico, in access non è possibile fare query di update con sommatorie.
  • Il campo Prezzo non deve stare nella tabella Ingredienti. Non tanto per il problema sollevato da te, quanto per il fatto che, con il passare del tempo, i Prezzi variano per qualsiasi Ingrediente. Ossia Ingrediente-Prezzo non sono campi omogenei e non possono convivere nella stessa tabella che parla di Ingredienti.

    Wirgei ha scritto:


    Il problema nasce quanto ho la necessità di utilizzare una ricetta inserita come ingrediente per una nuova ricetta. La soluzione più percorribile mi è sembrata quella di usare una query per creare un nuovo record nella tabella ingredienti che avesse lo stesso nome e prezzo/kg ottenuti della ricetta stessa. In questo modo questo nuovo ingrediente, ottenuto da una ricetta precedentemente inserita, risultava disponibile per altre ricetta.
    Questo problema è già stato affrontato in passato, esattamente come lo hai descritto. E va risolto con molta attenzione. Io non sono d'accordo sul creare un nuovo record Ingrediente con il nome di una Ricetta. Meglio richiamare la singola Ricetta preesistente e ricavare/accodare tutti i suoi Ingredienti.
  • Grazie Osvaldo per la tua risposta.
    Ho pensato al tuo approccio e cosa esso comporti. E' sicuramente più lineare e coerente. Se ho capito bene, ogni qual volta utilizzo un'altra ricetta come un ingrediente, il risultato sarebbe di avere i suoi relativi componenti (in proporzione all'utilizzo) nella nuova ricetta. Questo avrebbe il vantaggio di non mischiare ricette con ingredienti, e i vari attributi degli ingredienti rimarrebbero sempre aggiornati.

    Si verificherebbero però due problemi. Il primo è la leggibilità della ricetta dato che di volta in volta ci sarebbe da desumere a quale ricetta i vari ingredienti si stanno riferendo. Faccio un esempio, è più facile leggere: brodo, salsa al pomodoro e pane tostato che dai relativi ingredienti capire cosa essi siano. Il secondo è che se si dovesse cambiare una ricetta di base (quella utilizzata come ingrediente per intenderci) aggiungendo un'altro ingrediente o modificandone le quantità non si verificherebbero effetti nella ricetta che lo utilizza.

    Per risolvere la cosa dovrei andare in ogni ricetta che ne ha utilizzata un'altra e rimuoverne tutti gli ingredienti per poi reimportare la ricetta aggiornata.

    Apprezzo comunque il tuo supporto, ma devo trovare un'altra soluzione.
Devi accedere o registrarti per scrivere nel forum
3 risposte