Будут ли категории со временем меняться? В большинстве случаев так и будет, поэтому обычно лучше иметь отдельную таблицу категорий и внешний ключ (FK) между двумя таблицами. Затем вы можете добавлять или изменять категории просто с изменениями данных. В противном случае вы захотите установить проверочное ограничение на столбец с именем категории в своей таблице, чтобы убедиться, что вы не получите там ненужные данные, и это станет намного сложнее поддерживать.
При правильной индексации соединение должно иметь минимальную стоимость. Также имейте в виду, что вам не всегда нужно присоединяться к столам. Вам нужно будет присоединиться к ним, только если вы хотите, чтобы фактическое имя категории было частью вашего набора результатов. Например, если у вас на внешнем интерфейсе есть поле поиска с категориями и их идентификаторами, то при выборе продуктов вам нужно только вернуть значения идентификатора категории, и вам даже не нужно беспокоиться об объединении.