Проблема:
Ajax предложить-поиск по [ n ] ингредиентам в рецептах. То есть: совмещать рецепты с несколькими ингредиентами.
Например: SELECT Recipes using "flower", "salt"
будет производить: "Pizza", "Bread", "Saltwater"
и т. Д.
Таблицы:
Ingredients [
IngredientsID INT [PK],
IngredientsName VARCHAR
]
Recipes [
RecipesID INT [PK],
RecipesName VARCHAR
]
IngredientsRecipes [
IngredientsRecipesID INT [PK],
IngredientsID INT,
RecipesID INT
]
Запрос:
SELECT
Recipes.RecipesID,
Recipes.RecipesName,
Ingredients.IngredientsID,
Ingredients.IngredientsName
FROM
IngredientsRecipes
INNER JOIN Ingredients
ON IngredientsRecipes.IngredientsID = Ingredients.IngredientsID
INNER JOIN Recipes
ON IngredientsRecipes.RecipesID = Recipes.RecipesID
WHERE
Ingredients.IngredientsName IN ('salt', 'water', 'flower')
В настоящее время я создаю свой запрос с использованием ASP.NET C # из-за динамической природы предложения WHERE
.
Я жалею, что мне нужно создать запрос в моем уровне кода вместо использования хранимой процедуры / чистого SQL, что в теории должно быть намного быстрее.
Ребята, вы не задумывались над тем, как перевести всю логику с уровня кода на чистый SQL или, по крайней мере, как я могу оптимизировать производительность того, что я делаю?
Я думаю о временных таблицах:
Шаг первый : SELECT IngredientsID FROM Ingredients
и INSERT INTO temp-table
Шаг второй : SELECT RecipesName FROM Recipes
соединен с IngredientsRecipes
соединен с temp-table.IngredientsID