Я борюсь с дизайном сущностей для реляционной базы данных. Я настраиваю меню онлайн-ресторана для динамической загрузки в приложении. Я придумал следующие сущности, основанные на моем понимании меню.Меню меню ресторана базы данных
- Есть меню Категория (например, питание от сети, Sides, напитки, десерты)
- Там находятся пункты меню в каждой категории (Burger, чипсы, салат и т.д.)
- Это просто, но проблема Я столкнулся с категорией пунктов меню, которая имеет второй тип MenuItems, которые являются комбинацией других пунктов меню. Возьмите за пример , в меню Mcdonald's есть пункт меню еды, в который входит гамбургер + фри + напиток. В этом случае это комбинация трех разных категорий (гамбургер, бока и напиток), и пользователь может выбрать из несколько вариантов в этой категории. И есть много таких комбинаций, присутствующих в категории продуктов питания.
Как создать db таким образом, который полезен при создании комбинаций других простых элементов MenuItems из разных категорий. В идеале я должен иметь возможность создавать новые более чем одни категории, которые имеют такие специальные элементы меню, но на данный момент я пытаюсь использовать только одну категорию, предназначенную для таких предметов.
До сих пор я пытался создать отдельный объект comboMenuItems, который имеет все атрибуты MenuItem (имя, описание, цена и т. Д.), За исключением того, что их категория фиксирована как (категория MealDeals, исходящая из Таблица категорий).
Чтобы сделать ситуацию более сложной, иногда у кулинарного дела есть количество, связанное с ней, что означает, что клиент может выбрать более одного предмета из категории. Примером этого может быть семейная сделка, которая включает 2 гамбургера, 2 стороны и напиток. Я не уверен, как создать db, чтобы удовлетворить это бизнес-правило.
Есть несколько других деталей MenuItems (например, варианты, варианты и т. Д.), Но я опускаю их из этого вопроса, чтобы упростить его понимание.
Я ищу сущности и отношения, которые могут справиться с этой ситуацией.
Цель состоит в том, чтобы иметь возможность создавать новые комбинации сделок в db и представлять их на странице динамического меню, с конечной целью создания тележки, которая занимается заказом из этого меню.
Просьба дать некоторые конкретные полные проекты, которые на самом деле представляют доступные варианты, не беспокоясь о том, насколько они «хороши», насколько они кратки и насколько утомительны. Вы можете начать с размышления обо всех возможных путях, чтобы завершить предложение «Я хотел бы заказать ...». – philipxy