Есть следующие таблицы:
- ингредиенты (сыр, масло...) (id, ingredient_name)
- свойства ингредиентов (тертый, голландский, сливочное, подсолнечное...) (id, ingredient_kind_name)
- таблица отношений ингредиент - свойство (ingredient_id, ingredient_kind_id)
В таблице отношений ингредиент - свойство поле ingredient_kind_id организовано как список свойств через запятую, при том, что поле ingredient_id содержит уникальный id ингредиента.
При разработке таблиц калорийности столкнулась с тем, что требуется указывать калорийность (естественно) для каждой связки ингредиент-свойство (ну, кроме сыр тертый или помидоры рубленые ). При текущем положении в поле ingredient_kind_id (список через запятую) придется в базе создавать в таблице калорийности что-то вроде полей ingredient_id, [порядковый номер свойства в поле ingredient_kind_id], calories_id (в таблице калорийности не только сама калорийность, но и белки, жиры, углеводы). Не нравится мне все это, может, лучше, пока еще все на начальном этапе, сделать таблицу отношений тупо ingredient_id -> ingredient_kind_id и так для всех свойств ингредиента? Как вы думаете, что лучше? Спасибо!
1. tigressV - 02 Марта, 2019 - 03:16:24 - перейти к сообщению
2. Мелкий - 02 Марта, 2019 - 10:26:05 - перейти к сообщению
tigressV пишет:
поле ingredient_kind_id организовано как список свойств через запятую
Приведите в нормальную форму.
3. tigressV - 02 Марта, 2019 - 18:40:45 - перейти к сообщению
Мелкий пишет:
Приведите в нормальную форму.
tigressV пишет:
поле ingredient_kind_id организовано как список свойств через запятую
Приведите в нормальную форму.
Если Вы имеете в виду множественное перечисление id ингредиента в каждой строке для каждого его свойства, то да, я уже додумалась до ingredient_id -> ingredient_kind_id -> calories_id. Тогда отпадает необходимость в еще одной таблице отношений. Хотя может стоит и разделить на две, но будет повтор полей. Спасибо.