alcuni pensieri:
si potrebbe desiderare di utilizzare lo stesso tavolo per ricette e ingredienti, con una colonna indicatore del tipo. Il motivo è che le ricette possono contenere sotto-ricette. Chiamiamo la tabella combinata "Item". Allora la vostra tabella di recipeIngredient assomiglierebbe
RecipeIngredient (RecipeId, ItemId, Amount).
mi aspetto che il tavolo avrebbe anche una colonna di sequenziamento.
Se si vuole fare calcoli con queste ricette (per esempio, il ridimensionamento, l'analisi nutrizionale, la pianificazione della produzione) allora i vostri quantità sarà necessario specificare un'unità di misura. Puoi farlo esplicitamente (avendo una colonna separata per uofm) oppure puoi usare un campo di testo per quantità e aspettarti che l'utente inserisca valori come "1 tazza" o "2 cucchiai". Se segui questo approccio, dovrai assicurarti che ciò che entrano sia riconoscibile e analizzarlo ogni volta che devi utilizzarlo. Questo può diventare un complesso sorprendente, soprattutto se si desidera rappresentare i rendimenti delle ricette in modo formale.
Supponendo che si desidera 1: M da ricetta alla categoria, non sono ancora sicuro perché il vostro tavolo RecipeCategory avrebbe una colonna Nome. Penso che il nome derivi dalla definizione della categoria.
Sono d'accordo con Dave sul fatto che è improbabile che riutilizzi i passaggi di preparazione dalla ricetta alla ricetta, quindi una tabella RecipePreparationSteps (o qualcosa di simile) sarebbe più appropriata.
Tuttavia, le ricette vengono spesso presentate con ingredienti e istruzioni mescolate. per esempio.
Intro text alcuni ingredienti. istruzioni di preparazione altri ingredienti istruzioni di cottura.
Per adattarsi a ciò, è necessario impostare in modo intelligente i valori di sequenza nelle tabelle del passaggio RecipeIngredient e RecipePreparation in modo che sia possibile combinare i dati da entrambi nell'ordine corretto per la presentazione. Un altro approccio sarebbe, invece di queste due tabelle, utilizzare una tabella "RecipeLine" in modo che ogni riga possa rappresentare un'istruzione O un ingrediente. Penso che potrebbe essere quello che stavi suggerendo. I puristi disapprovano questo tipo di sovraccarico del tavolo, ma io non sono un purista.
Questo è un argomento di cui so molto, quindi chiedi qualsiasi cosa.
Ciao Elroy, Grazie per la risposta così eccellente e loquace che apprezzo davvero. Ero un po 'confuso da questa affermazione che hai fatto "... esplicitamente (avendo una colonna separata per uofm) .." e anche il penultimo paragrafo è qualcosa che VERAMENTE vorrei fare. Potresti per favore aiutare con un esempio? Se non ti dispiace posso avere un indirizzo e-mail in modo che io possa inviarti una versione pdf del mio attuale design? Grazie. –
Ciao, sarei felice di accettare la tua email ma non voglio pubblicare il mio indirizzo qui. Sono nuovo di SO. Non vedi un modo per inviarti tramite email il tuo profilo. Se puoi spiegare un altro modo per inviarti un'email, ti preghiamo di farlo, o semplicemente di pubblicare il tuo indirizzo email qui. –
Grazie. Il mio indirizzo email è [email protected] Controllo sempre l'email. Puoi scrivermi e poi risponderò al tuo. –