Разработать схему таблиц базы данных под MySQL

На проекте складского учета есть готовая база данных. Необходимо разработать схему вложенного сохранения заготовок у блюд. Сейчас есть таблицы dishes, dishes_composition, preparations, preparations_products, products. В dishes попадает название блюда. В dishes_composition id блюда, id продукта, id заготовки и вес. В preparations попадает имя заготовки. В preparations_products попадают id заготовок, id продуктов и вес. В products название продуктов.
Такой сценарий. Пользователь создает новое блюдо «Салат». Добавляет в состав блюда продукт «укроп» 100 грамм. Добавляет в состав блюда заготовки: «зажарка», вес которой равняется 200 грамм, «зелень» 100 грамм и «соус» 100 грамм. Пользователю нужно в данное блюдо добавить заготовку «соус», с весом 150 грамм (увеличивает исходную заготовку на 50 грамм). Он меняет вес заготовки. При этом изменяется вес продуктов и заготовок, которые входят в указанную заготовку «соус». Изменения веса Заготовки «соус» на 50 грамм, привели к изменению веса входящих в нее заготовок Зажарка, Зелень и Соус и входящих в нее продуктов. Нужно учесть, что заготовка Соус входит в состав иных блюд и у нее там вес иной. То есть изменения веса ингредиентов, не должны влиять на остальные блюда, куда входят заготовки Зажарка, Зелень и Соус.
То есть у нас есть блюдо Салат. Пользователь добавляет ингредиенты. 3 заготовки (родительские). У одной заготовки есть тройная вложенность, т.е. дети и предки. Есть 3 родителя, но один из этих родителей может быть ребенком у одной из заготовок.




Читайте на 123ru.net