БД рецептов, прошу объяснить возможную структуру

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

БД рецептов, прошу объяснить возможную структуру

Сообщение giaber » 13.10.2017 (Пт) 15:19

Здравствуйте!
Жена очень просит сделать базу данных по рецептам (в инете по её запросам-требованиям к функционалу не нашли ничего нормального). Начал прикидывать что и как (с базами данных практически не приходилось работать) – и на первом же этапе уже затормозил. С простыми рецептами, так сказать «планарными», ну, в смысле просто набор продуктов – всё ясно, но есть сложные рецепты, в которых есть ещё и разбивка по группам, вот, например:

Торт Киевский

Бисквит:
Яйцо — 4 шт
……
……

Пропитка бисквита:
Сироп сахарный (для) — 1/3 стак.
……
……

Безе:
Белок яичный — 2 шт
……
……

Крем:
Масло сливочное — 200 г
Взбитые сливки — 230 г
или
Жирные сливки — 1 стак.

Украшение торта:
Стружка шоколадная — 2 ст. л.
……
……

Был бы благодарен за объяснение в общих чертах – как это делается, какая структура должна быть у БД?
(Особенно непонятно что делать с ситуацией в Группе «Крем» - «Сливки» (ситуация с «или»)

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: БД рецептов, прошу объяснить возможную структуру

Сообщение ger_kar » 13.10.2017 (Пт) 18:37

Все зависит от того, что вы планируете получить на выходе. Что вы вообще собираетесь делать с той информацией, которая будет храниться в базе?
Если просто по названию, после поиска, открывать и готовить, то можно сделать простейшую структуру из двух таблиц. Можно сделать гораздо сложнее и одну таблицу сделать иерархической. А можно сделать отдельный справочник продуктов, чтобы например из нескольких выбранных рецептов получать точный список набора продуктов, который можно распечатать и с которым можно идти в магазин. Такой вариант в отличии от самого простого будет сложнее в разы. Поэтому надо точно определиться с тем, что должно получаться на выходе, а потом уже думать о структуре. Тот рецепт, а по сути даже не рецепт, а список необходимых продуктов, который приведен, это фактически набор продуктов и их количество, но ведь может же быть еще и чисто описательная часть? Или некая последовательность действий. Ведь если просто смешать некий набор в требуемых количествах, то за исключением некоторых простых случаев, ничего хорошего из такой мешанины не получится. Над этим тоже надо подумать.

И вообще по идее эта тема не в том разделе создана. Для баз данных есть отдельный раздел.
Бороться и искать, найти и перепрятать

giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

Re: БД рецептов, прошу объяснить возможную структуру

Сообщение giaber » 13.10.2017 (Пт) 18:54

ОК, понял. Сформулирую чётче и открою тему в разделе Базы Данных.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: БД рецептов, прошу объяснить возможную структуру

Сообщение Teranas » 13.10.2017 (Пт) 18:56

Базу можно и самому написать, если нет опыта работы с базами-монстрами, или просто использовать бод базу файлы в отдельном каталоге, один рецепт - один файл, можно потом будит собирать в chm. есть и не плохие готовые решения и к тому же бесплатные, попробуй вот это
Вложения
Dietolog.7z
(459.02 Кб) Скачиваний: 142
С уважением, Андрей.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: БД рецептов, прошу объяснить возможную структуру

Сообщение kibernetics » 13.10.2017 (Пт) 21:59

Я бы начал так:
Таблица Рецепты:
id, receipt_name
1, Торт Киевский

Таблица Ингридиенты:
id, ingridient_name, dim
1, Сахар, гр.
2, Соль, гр.
3, Яйцо, шт.

Таблица связей Рецепт-Ингридиенты (receiptlist):
receipt_id, ingridient_id, count
1, 1, 5
1, 2, 4
1, 3, 4

А потом запрос, смотря, что ей надо: или она ищет рецепты по имеющимся у неё ингридентам, либо по названию рецепта, типа так:
Код: Выделить всё
select i.ingridient_name, r.count, i.dim
from ingridients i INNER JOIN
   receiptlist r ON i.ID = r.ingridient_id INNER JOIN
   receipts s ON s.id = r.id
   WHERE s.receipt_name = 'Торт Киевский'

в ответ должно дать:
Сахар 5 гр.
Соль 4 гр.
Яйцо 4 шт.


Ну и соответсвенно, можно потом выбрать запрос в обратном порядке, типа, что можно приготовить, если из ингридентов на кухне есть только соль и сахар например.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

    TopList