Given that you will have a many-to-many relationship of ingredients to products, I would not recommend creating ingredients as a separate page type. This will drastically increase the size of your content tree, which has performance implications throughout the site (menus, searching, etc.).
Some possible alternatives (assuming you wanted to use Kentico out-of-the-box functionality)
Use a custom table for your ingredients. Create a field on your product to assign ingredients.
This will allow you to quickly add ingredients using the provided custom table UI, while limiting your content tree. Using a page type filed for the selection (uniselector) would be an easy way for people to add associate them with a product.
This solution would allow you to assign each ingredient as a category quickly to any product. The ingredients can be added using the categories ui. This solution also has the benefit of leveraging built-in category web parts for display other records.
There are other possibilities, but understanding more of the requirements would be required to know which one is best. Both of the above solutions would be easy to implement so you could determine their validity in meeting your needs. If they don't, I would recommend contact a Partner in your area for some expert guidance. Or possibly our Consulting team.