На самом деле оба предложенных решения неверны.Напиток может содержать много ингредиентов, а ингредиент может использоваться во многих напитках.Следовательно, у нас здесь есть отношения многие ко многим.Правильный способ моделирования этого заключается в следующем (я добавляю данные, чтобы он был более понятным):
Ингредиенты (PK: Id)
+----+--------------------+
| Id | Name |
+----+--------------------+
| 1 | Water |
| 2 | Sugar |
| 3 | Coffe |
| 4 | Virgin Islands Tea |
| 5 | Ice |
+----+--------------------+
Напитки (PK: Id)
+----+-------------+
| Id | Name |
+----+-------------+
| 1 | Black Coffe |
| 2 | Tea |
| 3 | Ice Tea |
+----+-------------+
Drinks_Ingredients (PK: Drink_Id, Ingredient_Id)
+----------+---------------+------------+
| Drink_Id | Ingredient_Id | Proportion |
+----------+---------------+------------+
| 1 | 1 | 70 |
| 1 | 2 | 10 |
| 1 | 3 | 20 |
| 2 | 1 | 90 |
| 2 | 4 | 10 |
| 3 | 1 | 80 |
| 3 | 4 | 10 |
| 3 | 5 | 10 |
+----------+---------------+------------+
Я добавляю это Proportion
столбец, чтобы показать вам, как добавить данные, которые зависят от пары напиток-ингредиент.Теперь, если вас беспокоит размер таблиц, он будет довольно маленьким, поскольку единственными таблицами, которые будут иметь более сложные типы данных (varchars), будут таблицы ингредиентов и напитков, в которых будет минимальное количество записей.возможно: по одному на каждый напиток и по одному на каждый ингредиент.
Если у вас все еще есть сомнения, продолжайте смотреть на пример, вы получите его:)