Да, то, что у вас есть, выглядит правильно для меня. То, что вы сделали, указав место хранения продукта и производителя в таблице Products
, абсолютно правильно. Если вы поместите его в отдельную таблицу (внизу), вы просто создадите для себя больше работы со всеми объединениями, которые вам придется делать позже.
Единственная причина, по которой вы бы разбили это на новую таблицу Product_storage_locations, - это если продукт может находиться в нескольких местах (что, как вы сказали, не так). Однако в случае продуктов и категорий это - это , что вы хотите сделать - и это то, что вы сделали с таблицей Product_categories; и это абсолютно правильно.
Единственное, в чем я не уверен в вашем дизайне, это как вы сделали дополнительные поля. Без дополнительной информации о ваших намерениях трудно сказать, правильно ли вы сделали то, что вы сделали. Однако мне кажется, что то, что у вас есть, представляет собой особый тип поля, который может применяться ко многим продуктам; но при этом каждый из этих продуктов может иметь различное значение для этого поля. Если это ваше намерение, то этот дизайн выглядит хорошо.