I'd put ingredients and foods produced from a recipe in the same table and use a many to many self join to link items to the food that they are used to produce. This is exactly like having an inventory that lists raw materials and then the various goods manufactured from those raw materials with a BOM (Bill of Materials) that lists the inventory items and quantiites needed to produce a given inventory item. Purchased items just don't have related recods in the BOM table. The relationships can link up records recursively for as many iterations as needed.
Where Recipe and Ingredients are two occurrences of the same table. Recipe_Ingredient identifies one ingredient in each record with the quantity info needed to make one such item from the given recipe.
Recipe::__pkItemID = Recipe_Ingredient::_fkRecipeItemID
Ingredients::__pkItemID = Recipe_Ingredient::_fkIngredientItemID
Trying to replicate what you're doing here... any chance you can still access this post?