Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/75: Рейтинг темы: голосов - 75, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 33

База данных "Поваренная книга" Access 2010

02.12.2013, 16:26. Показов 15293. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите начинающему . Задача такая: поваренная книга состоит из нескольких разделов (не менее 3х), в каждом из которых содержатся рецепты различных блюд (не менее 10). Каждое характеризуется набором продуктов и способом приготовления. Продукты характеризуются названием, калорийностью, экзотичностью и т.д. Нужно также продумать переход от стандартных единиц измерения к ложкам, стаканам и т.п.
_ _ _
Я вообщем в качестве разделов выбрал 3 таблицы (холодные блюда, горячие блюда и вторые блюда) . В каждой поля : блюдо, ингредиенты, способ приготовления, особые советы и калорийность . Таблица продуктов содержит поля : название, тип, калорийность, экзотичность . Как всё это связать, чтобы создать запрос: поиск блюда из определённых продуктов ? И так же не знаю как организовать переход к ложкам, стаканам и т.д.
Вложения
Тип файла: rar БД.rar (30.2 Кб, 342 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2013, 16:26
Ответы с готовыми решениями:

База сделанная в Access 2010 не открывается
Добрый вечер! Делала базу данных в Access 2010, открывается только на некоторых компьютерах, в чем дело? И как это можно исправить?

Подключение и работа с базой данных MS Access 2010 в Visual Studio 2010: VB
Доброго времени суток! Уважаемые гуру програмирования, не моглибы Вы помочь начинающему! Задача: Есть база данный на Access 2010,...

Перенос старых данных в БД MS Access 2010 из MS Excel 2010
Здравствуйте ! Создаю БД да работы сотрудников. Вроде с основными вопросами справился, но как всегда под конец возникла проблемка. ...

13
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
02.12.2013, 16:44
схема с структура таблиц ---увы не тянет

таб1---все салаты и супы
ид1
группа
наименование
способ приготовления
примечание
(калории под сомнением)

таб2 ---состав блюда
ид2
ид1
ид3продукта
количество

справ3 --наименование продуктов с калориями
ид3
наименование
калории в 100гр

справ4 группы
ид4
наименование
1
 Аватар для minibuilder
97 / 6 / 1
Регистрация: 15.04.2013
Сообщений: 40
02.12.2013, 16:46
Я бы сделал таким образом:
Таблица "Справочник_продуктов"
-ИД_продукта
-Наименование_продукта
...
Далее
Таблица "Справочник_блюд"
Поля:
-ИД_блюда (ключевое поле)
-ИД_категории (типа, 1-холодные блюда, 2-горячие блюда, 3-вторые блюда)
-Наименование_блюда
-Калорийность и т.д. что там тебе надо
таблица "Справочник_блюд" будет иметь связь 1 ко многим с таблицей "Справочник_рецептов", которая состоит из:
-ИД_записи
-ИД_блюда(связь с предыдущей таблицей)
-ИД_продукта
-Количество_продукта
...
Так понятно? могу нарисовать, если нужно
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 33
02.12.2013, 21:41  [ТС]
Не понятно как в таблице "справочник рецептов" вписывать сам рецепт . Там же будет несколько продуктов .
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
02.12.2013, 22:19
хорошо, что понимаете
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
03.12.2013, 07:18
Цитата Сообщение от dm_2014 Посмотреть сообщение
...вписывать сам рецепт...
Вставить в основную форму подчиненную форму.
1
 Аватар для minibuilder
97 / 6 / 1
Регистрация: 15.04.2013
Сообщений: 40
03.12.2013, 11:56
Цитата Сообщение от dm_2014 Посмотреть сообщение
Не понятно как в таблице "справочник рецептов" вписывать сам рецепт . Там же будет несколько продуктов .
Вот примерно так оно будет выглядять:
Вначале тебе нужно раставить связи:
[Справочник_блюд].[ИД_блюда] связь 1-ко многим с [Справочник_рецептов].[ИД_блюда]
[Справочник_продуктов].[ИД_продукта] связь 1-ко многим с [Справочник_рецептов].[ИД_продукта]
а таблицы будут выглядять примерно вот так:

Справочник_продуктов
ИД_продуктаНаименование_продукта
1Картофель
2Морковь
3Свекла
4Яблоко
5Груша
......

Справочник_блюд
ИД_блюдаИД_категорииНаименование_блюдаКалорийность
14Борщ100
25Компот10
............
где в ИД_категории подразумевается, что 4-это "Первые блюда", 5-это напитки. Наверное, лучше всего будет для категорий блюд создать отдельную таблицу и связать ее с этой по ИД_категории. Таблица будет иметь вид:

Категории_блюд
ИД_категорииНаименование_категории
1Холодные блюда
2Горячие блюда
3Вторые блюда
4Первые блюда
5Напитки

А дальше примерно таким образом:

Справочник_рецептов
ИД_записиИД_блюдаИД_продуктаКоличество_продукта(кг)
1110,7
2120,4
3130,5
4240,2
5250,2

И смотр что выходит в итоге:
ИД_записи - это просто счетчик, уникальный ключ по каждой записи
ИД_блюда - это то, что связывает рецепт с конкретным блюдом, т.е. первые три записи относятся к борщу, четвертая и пятая к компоту и т.д. сколько продуктов входит в тот или иной рецепт, столько будет записей связанных с конкретным блюдом.
ИД_продукта - тут я думаю, что уже понятно. Это поле связано с таблицей Справочник_продуктов
т.е. Картошка (ИД_продукта=1), Морковка (ИД_продукта=2) и Свекла (ИД_продукта=3) связаны с борщем (ИД_блюда=1), а Яблоко (ИД_продукта=4) и Груша (ИД_продукта=5) связаны с Компотом (ИД_продукта=2)

Теперь понятнее стало? Еще есть вопросы?)
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 33
05.12.2013, 19:40  [ТС]
Спасибо огромнейшее))) Ну примерно такая штука у меня получилась) Только в запросе нужного блюда с необходимыми ингредиентами у меня выводится несколько записей . Как сделать чтобы одна была ? И как сделать запрос "выдать меню из доступных продуктов " ?
Вложения
Тип файла: rar БД мод.rar (54.9 Кб, 237 просмотров)
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
05.12.2013, 20:19
dm_2014 - Как мене кажется нужна еще одна
табличка - ЕдиницыИзмерения
КодЕдИзм
ЕдИзмерения
В которые вы впишете всевозможные -Чайные ложки, Столовые ложки, Десертные... Стаканы, шт.,гр, кг, и многоо чего еще может быть
1
 Аватар для minibuilder
97 / 6 / 1
Регистрация: 15.04.2013
Сообщений: 40
12.12.2013, 16:30
Цитата Сообщение от dm_2014 Посмотреть сообщение
Только в запросе нужного блюда с необходимыми ингредиентами у меня выводится несколько записей . Как сделать чтобы одна была ?
если я правильно понял, то по выбору продукта ты хочешь полчать все блюда, где этот продукт используется?
тогда покажу на примере продукта Вода (ИД=63)

SELECT [Справочник блюд].[Наименование блюда], [Справочник блюд].Калорийность
FROM [Справочник продуктов] INNER JOIN ([Справочник блюд] INNER JOIN [Справочник рецептов] ON [Справочник блюд].[ID блюда] = [Справочник рецептов].[ID блюда]) ON [Справочник продуктов].[ID продукта] = [Справочник рецептов].[ID продукта]
WHERE ((([Справочник продуктов].[ID продукта])=63));
Выдаст наименования блюд, где в рецепте есть вода

Цитата Сообщение от dm_2014 Посмотреть сообщение
И как сделать запрос "выдать меню из доступных продуктов " ?
Что конкретно тебе нужно? Тут как вариант можно учитывать колличество продуктов на складе (этот вариант немного сложнее в плане вычислений) либо в таблицу с продуктами добавить Поле [Наличие_продукта], где 0 будет обозначать, что продукт отсутствует, а 1 - что есть в наличии.
Какой вариант тебе нужен?
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 33
14.12.2013, 16:55  [ТС]
У меня в задании надо сделать следующий запросы:
1)поиск нужного блюда (здесь проблема в том, что я допустим ввожу в запросе "салат Марина" и у меня выводится не одна запись, а сразу 6(по непонятным для меня причинам), я сделал в конструкторе, чтобы возвращалось 1, а не все, но не думаю, что так правильно будет );
2)Поиск блюда из определённых продуктов;
3)Выдать меню с заданной калорийностью (ну это сделал);
4)Выдать меню из 'доступных продуктов';
5)Выдать диетическое меню с учётом способа приготовления(духовка, микроволновка, жарка и тд) и набора продуктов.

Преподаватель говорит 2, 4, 5 надо через sql делать, с которым я пока плохо знаком .
Цитата Сообщение от minibuilder Посмотреть сообщение
Что конкретно тебе нужно? Тут как вариант можно учитывать колличество продуктов на складе (этот вариант немного сложнее в плане вычислений) либо в таблицу с продуктами добавить Поле [Наличие_продукта], где 0 будет обозначать, что продукт отсутствует, а 1 - что есть в наличии.
Какой вариант тебе нужен?
Насчёт 4го, у меня в таблице "Справночник_продуктов" есть поле "Доступность" .
Вложения
Тип файла: rar БД мод мод.rar (55.0 Кб, 69 просмотров)
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
14.12.2013, 20:22
1. Поиск нужного блюда. Запрос без Top 1
SQL
1
2
3
4
5
6
7
SELECT [Справочник блюд].[Наименование _блюда], [Категории блюд].Название_категории, 
  [Справочник блюд].Калорийность, [Способы приготовления].Способ_приготовления, 
  [Способы приготовления].Особые_советы
FROM ([Категории блюд] INNER JOIN [Справочник блюд] 
  ON [Категории блюд].ID_категории = [Справочник блюд].ID_категории) INNER JOIN [Способы приготовления] 
  ON [Справочник блюд].ID_блюда = [Способы приготовления].ID_блюда
WHERE ((([Справочник блюд].[Наименование _блюда])=[Наименование_блюда]));

2. Поиск блюда из определённых продуктов
SQL
1
2
3
4
5
6
7
8
SELECT [Справочник блюд].ID_блюда, [Справочник блюд].ID_категории, 
  [Справочник блюд].[Наименование _блюда], [Справочник блюд].Калорийность
FROM [Справочник продуктов] INNER JOIN ([Справочник блюд] INNER JOIN Ингредиенты 
  ON [Справочник блюд].ID_блюда = Ингредиенты.ID_блюда) 
  ON [Справочник продуктов].ID_продукта = Ингредиенты.ID_продукта
GROUP BY [Справочник блюд].ID_блюда, [Справочник блюд].ID_категории, [Справочник блюд].[Наименование _блюда], 
  [Справочник блюд].Калорийность, [Справочник продуктов].Название_продукта
HAVING [Справочник продуктов].Название_продукта=[Введите название продукта]
4. Выдать меню из 'доступных продуктов. Запрос выдает только те блюда, которые состоят только из доступных продуктов
SQL
1
2
3
4
5
6
7
SELECT [Справочник блюд].*
FROM [Справочник блюд] INNER JOIN 
  (SELECT Ингредиенты.ID_блюда FROM [Справочник продуктов] INNER JOIN Ингредиенты 
     ON [Справочник продуктов].ID_продукта = Ингредиенты.ID_продукта
GROUP BY Ингредиенты.ID_блюда
HAVING COUNT(*)=-SUM([Справочник продуктов].Доступность))  AS q 
  ON [Справочник блюд].ID_блюда=q.ID_блюда;

5. Выдать диетическое меню с учётом способа приготовления(духовка, микроволновка, жарка и тд) и набора продуктов
Не понимаю, что должно быть на выходе. Разъясняйте. А лучше показать табличку с желаемым результатом
1
 Аватар для minibuilder
97 / 6 / 1
Регистрация: 15.04.2013
Сообщений: 40
16.12.2013, 11:47
Цитата Сообщение от dm_2014 Посмотреть сообщение
5)Выдать диетическое меню с учётом способа приготовления(духовка, микроволновка, жарка и тд) и набора продуктов.
Предлагаю сделать еще одну таблицу вида
[Способ_приготовления]
ИДОписание
1Духовка
2Микроволновка
3Жарка
......
Добавь в таблицу [Справочник блюд] поле [ИД_способа]
Установи связь [Способ_приготовления].[ИД] 1-ко-многим с [Справочник блюд].[ИД_способа]
а потом просто делаешь выборку по этому полю, как-то так
SQL
1
2
SELECT * FROM [Справочник блюд]
WHERE [Справочник блюд].[ИД_способа]=1
выведется список блюд, готовящихся в духовке
Либо с параметром
SQL
1
2
SELECT * FROM [Справочник блюд]
WHERE [Справочник блюд].[ИД_способа]=[Введите ИД способа]
тут уже при выполнении запроса будешь вводить ИД способа
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 33
21.12.2013, 19:46  [ТС]
Спасибо, получилось как то так. Помогите ещё пожалуйста с формами и отчётом, не совсем понимаю и времени уже не осталось .
Вложения
Тип файла: rar БД мод мод мод.rar (79.4 Кб, 360 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2013, 19:46
Помогаю со студенческими работами здесь

Экспорт данных из Access 2010 в Excel 2010
Добрый день, уважаемые форумчане. Пытаюсь допилить свою базу для работы в мануальной клинике. Почти все сделал, но вот не могу доделать...

Готовая база данных Адресная Книга с параметрическим запросом
Готовая база данных Адресная Книга с параметрическим запросом

База Данных в RAD Studio 2010
Здравствуйте! Я программирую на Borland C++ Builder 6.0 2002 года) Решил перейти с этого старья на что-то боле новое. Установил...

Многопользовательская база данных (2007, 2010), разделение прав пользователей
Вводная: Есть база данных, таблица Многопользовательский режим с ежедневным вводом данных пользователями в одних и тех же листах книги ...

Не открывается база данных Access , пишет неразпознаваемый формат базы данных
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru