Есть ли способ поиска в списке в базе данных SQLite?

-3

Я создаю приложение для здоровья и питания и использую единство в качестве своего двигателя. У меня есть база данных SQLite, которая содержит рецепты, поля ID (первичный ключ), имя, ингредиенты и метод. Каждый рецепт является записью в базе данных, и у них есть свои списки ингредиентов. Цель состоит в том, чтобы позволить пользователю вводить ингредиенты, и программа отфильтрует рецепт по ингредиентам.

Я ожидаю, что когда пользователь вводит муку (в качестве примера), он покажет все рецепты, которые используют муку. Например: яблочный пирог, торт и так далее. Вместо этого, если я хочу искать ингредиенты, входные данные должны быть идентичны всему, чтобы

Теги:
database
unity3d

2 ответа

0
Лучший ответ

Вы должны прочитать о том, как работают реляционные базы данных. Прямо сейчас, когда все в одной таблице, ваша база данных на самом деле не более полезна, чем простая электронная таблица Excel.

Вы хотите три стола; один для ингредиентов, один для рецептов, и один, чтобы присоединиться к ним, который я назову Ingredient_Recipe. Таблица Ingredient_Recipe будет иметь два внешних ключа, один из таблицы ингредиентов, один из таблицы рецептов. Затем вы можете выполнять SQL-запросы, как в этом примере:

select Recipes.recipeName
from Recipes
INNER JOIN Ingredient_Recipe ON recipe_ID = Ingredient_Recipe.recipe_ID
Where Ingredient_ID = "oregano"

Который должен рассказать вам каждый рецепт, который содержит орегано.

  • 0
    В моей базе данных мои таблицы настроены так: CREATE TABLE "Ingredient_Recipe" ("ID" INTEGER, "Recipe_ID" TEXT, "Ingredient_ID" INTEGER, PRIMARY KEY ("ID")); CREATE TABLE "Ingredients" ("Ingredient_ID" INTEGER, "Ingredient_Name" TEXT, ПЕРВИЧНЫЙ КЛЮЧ ("Ingredient_ID")); CREATE TABLE "Recipe" (INTEGER "Recipe_ID", "TEXT", "Recipe_Name", ПЕРВИЧНЫЙ КЛЮЧ ("Recipe_ID")); // Как это можно применить к моей базе данных, так как мне трудно понять вашу
  • 0
    Вам нужно создать еще одну таблицу с именем по вашему желанию, с собственным первичным ключом и двумя внешними ключами: «Recipe_ID» и «Ingredient_ID». Тогда вам нужно объединиться на всех 3 столах.
Показать ещё 2 комментария
0

классический реляционный способ сделать это - иметь таблицу ингредиентов и таблицу отношений (ingedientrecipe), чтобы вы могли запрашивать все ингредиенты в рецепте или все рецепты, которые содержат данный ингредиент

  • 0
    Как сделать так, чтобы в одном рецепте было много ингредиентов. Извините, если это вопрос новичка, работа с SQL очень нова для меня

Ещё вопросы

Сообщество Overcoder
Наверх
Меню