Я позволю поставить ссылку на недавний вопрос
Как лучше устроить базу данных?
Основные тезисы такие же:
- иметь NN столбцов в одной таблице - однозначно плохо, поэтому умещать все в одной таблице - bad design.
- в любой непонятной ситуации проектируйте базу исходя из 3НФ (google it) и все будет хорошо.
В данном конкретном случае, у вас есть 2 основные сущности: рецепт и продукт с соотношением многие-ко-многим, соответственно правильная структура базы в упрощенном виде:
1. Рецепт- id рецепта (integer, primary, auto increment)
- название рецепта (varchar)
2. Продукт- id продукта (integer, primary, auto increment)
- название продукта (varchar)
3. Единица измерения (добавил для примера, не обязательно)
- id единицы измерения (integer, primary, auto increment)
- название единицы измерения (varchar)
4. Элемент рецепта- id рецепта
- id продукта
- id единицы измерения
- количество продукта в указанных единицах измерения (decimal)
В последней таблице можно сделать составной PRIMARY (id рецепта, id продукта), а можно добавить еще отдельный PRIMARY автоинкрементный, а указанный выше составной ключ сделать просто UNIQUE.