1년 정도 코딩을 했고 현재 포트폴리오(레시피 웹사이트) 작업을 하고 있는데 막혀서 어떻게 진행해야 할지 모르겠습니다.
내 문제는 테이블 A(삽입 여부에 관계없이)의 자동 증가 성분 ID를 테이블 B에 삽입하는 방법을 찾아야 한다는 것입니다.
레시피가 제출되면 다음 MySQL 쿼리를 사용하여 재료 테이블에 제출된 재료가 있는지 확인하는 코드가 설정되어 있습니다.
으아아아처음에는 삽입 후 트리거를 사용해 보았지만, 성분이 데이터베이스에 이미 존재하고 새로 삽입되지 않은 경우에는 이 접근 방식이 작동하지 않는다는 것을 깨달았습니다. 그러므로 내 접근 방식에 대한 리팩토링이 필요할 수도 있다고 생각합니다.
내 목표는 레시피를 제출할 때 다음 코드를 사용하여 재료를 배열로 컴파일하는 것입니다.
으아아아그런 다음 MySQL 쿼리를 실행하고 테이블 A에 성분이 없으면 테이블 A에 삽입하고, 이미 있으면 무시하세요. 이 두 가지 옵션 뒤에는 재료의 자동 증가 ID가 테이블 B에 삽입됩니다. 문제를 더 복잡하게 만들기 위해 recipe_id는 테이블 C(다양한 레시피 정보 포함)에서 추출되고 amount는 사용자가 입력 필드에 입력한 값(배열로 변환됨)이 되며 unit_id는 사용자가 선택한 값이 됩니다. 사용자 및 데이터베이스에 사전 정의된 사전 정의된 측정 단위 세트에 해당하는 단위 세트입니다(또한 배열로 변환됨). 이 두 배열은 위의 JavaScript 코드를 사용하여 배열로 만들어집니다.
테이블 A는 다음과 같습니다.
id | 성분 |
---|---|
1 | 설탕 |
2 | 밀가루 |
테이블 B는 다음과 같습니다
id | recipe_id | 금액 | unit_id | ingredient_id |
---|---|---|---|---|
1 | 45 | 1 | 5 | 1 |
2 | 76 | 4 | 4 | 2 |
업데이트된 방법
이것이 더 나은 방법이길 바라지만, 테이블 열에서 if 문의 잘못된 결과를 실행@checkIngredientFalse
,然后执行@checkIngredientTrue
方面遇到了困难,因为这将会将ingredient的id
添加到recipe_ingredients
的ingredient_id
하게 만드는 방법을 찾는 데 어려움을 겪고 있습니다.
recipe.js
으아아아routerRecipes.js
으으으으
레시피의 각 재료에 대해:
SELECT id FROM ingredients WHERE ingredient = ?
ingredient_id
를 반환된 ID로 설정합니다INSERT INTO Ingredients (ingredient) VALUES (?)
를 실행하고INSERT INTO ingredients (ingredient) VALUES (?)
,并将ingredient_id
를 할당된 자동 증가 ID로 설정하세요INSERT INTO 레시피
에는 위 단계에서 찾은ingredient_id
值进行INSERT INTO recipes
값을 사용하세요