Consiglio su come sviluppare

di il
3 risposte

Consiglio su come sviluppare

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

  • Re: Consiglio su come sviluppare

    Per essere più specifico, in access non è possibile fare query di update con sommatorie.
  • Re: Consiglio su come sviluppare

    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.
  • Re: Consiglio su come sviluppare

    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