Как реализовать поиск данных в бд по заданным параметрам?

Начал разработку своего проекта для андроид устройств. Суть заключается в поиске рецептов по заданным пользователем ингридиентам(Ингридиенты во множественном выборе ListView). Рецепты будут хранится в базе данных SQL и выглядеть примерно вот так:
(Изображение не прикрепил) 1) Столбец : Название(тип данных:текст)
2-n)Продукты разных сортов яйца, масло, мясо и т.д(с типом не определился либо real либо текст)
В бд толком ничего не понимаю, да и в андроиде это мой первый “крупный”(для меня лично) проэкт.
Как мне реализовать поиск самих рецептов?С sql и базами данных в первые сталкиваюсь.
  • Вопрос задан
  • 719 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Я позволю поставить ссылку на недавний вопрос Как лучше устроить базу данных?

Основные тезисы такие же:
- иметь NN столбцов в одной таблице - однозначно плохо, поэтому умещать все в одной таблице - bad design.
- в любой непонятной ситуации проектируйте базу исходя из 3НФ (google it) и все будет хорошо.

В данном конкретном случае, у вас есть 2 основные сущности: рецепт и продукт с соотношением многие-ко-многим, соответственно правильная структура базы в упрощенном виде:

1. Рецепт
  • id рецепта (integer, primary, auto increment)
  • название рецепта (varchar)
2. Продукт
  • id продукта (integer, primary, auto increment)
  • название продукта (varchar)
3. Единица измерения (добавил для примера, не обязательно)
  • id единицы измерения (integer, primary, auto increment)
  • название единицы измерения (varchar)
4. Элемент рецепта
  • id рецепта
  • id продукта
  • id единицы измерения
  • количество продукта в указанных единицах измерения (decimal)

В последней таблице можно сделать составной PRIMARY (id рецепта, id продукта), а можно добавить еще отдельный PRIMARY автоинкрементный, а указанный выше составной ключ сделать просто UNIQUE.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Рецепты будут хранится в базе данных SQL и выглядеть примерно вот так:
Нет. Совсем по другому, наример.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы