2010-07-12 8 views
13

Voglio creare un database di ricette che mi piacciono, ma ho problemi a progettarlo. Voglio avere almeno due tavoli:Progettazione database per la memorizzazione di ricette alimentari

  1. tavolo Ricetta (ha la descrizione, ingredienti, indicazioni, ecc ...)
  2. tabella Ingredienti (tipo ingrediente, altri attributi, ecc ...)

Quale sarebbe un modo per associare le due tabelle insieme? Avrei bisogno di un terzo tavolo che memorizzasse le varie relazioni da una ricetta a più ingredienti?

Come probabilmente puoi dire, sono relativamente nuovo a questa roba, solo cercando di capire il modo giusto per farlo al primo tentativo.

Grazie!

risposta

10

fa una ricetta avere molti ingredienti o molte ricette sono molti ingredienti

mi aspetto che sarà il secondo per consentire di trovare la ricetta di per ingrediente.

Quindi avrete bisogno di una tabella intermedia per rompere la relazione molti a molti in due relazioni da uno a molti.

Recipe(RecipeID, etc...) 
Ingredients(IngredientID, etc....) 
RecipeIngredients(RecipeID, IngredientID, etc..) 

Poi nel RecipeIngredients avrei messo informazioni quali quantità di tale ingrediente per quella ricetta.

+0

Sì, il secondo. Penso di avere l'idea generale corretta, solo bisogno di persone intelligenti per confermare! – Cass

1

Si potrebbe considerare qualcosa come una cartella di file di testo, con un indice full-text di qualche tipo.

Oppure una tabella come Ricette (ID, LikeRatio, Descrizione come testo). Ancora una volta con una ricerca full-text.

Teoricamente è possibile utilizzare un modello normalizzato come quello suggerito da @Mike. Ma guardando le ricette attuali, deve essere più flessibile. Ad esempio in questo modello, non vi è alcuna prova dell'uso in qualche fase del risultato di un passaggio precedente.

Problemi correlati