SQLite 데이터베이스를 올바르게 사용하지 않는 것 같습니다.
사용자 별 데이터 항목을 사용하는 것처럼 들립니다.
데이터베이스의 강점은 여러 사용자, 여러 항목 또는 여러 테이블의 데이터를 저장 한 다음 나중에 특정 사용자 또는 항목에 대한 데이터 만 검색하는 것입니다. 테이블에는 행이 추가, 업데이트 또는 삭제되어야하지만 일반적으로 테이블은 개별 데이터 요소로 생성 및 파괴되어서는 안됩니다.
당신이 이해하지 못하는 것이 조인 개념인지 의심 스럽습니다.
이 같은 보일 수 있습니다 무엇을 설명하기위한 디자인 : 사용자가 추가 할 때마다,이 같은 디자인을 사용하여
select * from Recipe r
join Recipe_Ingredients ri on r.Ingredients_ID = ri.ID
join Ingredient i on ri.Ingredient_ID = i.ID
where r.User_ID = (select ID from User where First_Name = 'John' and Last_Name='Doe')
:
User
---------------
ID
First_Name
Last_Name
Email_Address
Ingredient
---------------
ID
Name
Description
Recipe
---------------
ID
User_ID
Name
Description
Serving_size
Ingredients_ID
Date_Created
Recipe_Ingredients
---------------------
ID
Ingredient_ID
Quantity
Unit_of_measure
So to get to get a list of recipes for John Doe (this query assumes you can only have one John Doe), you'd do:
select * from Recipe r
where r.User_ID = (select ID from User where First_Name = 'John' and Last_Name='Doe')
또는 재료와 조리법의 목록을 얻을 수를 새로운 래서 피, 단순히 래서 피 및 recipe_ingredients 테이블에 행을 추가하십시오. 또는 새로운 재료를 추가 할 때 성분 표에 행을 추가합니다.
다음은 SQL joins tutorial에 대한 링크입니다.
데이터 저장 디자인이 좋지 않은 것처럼 들립니다. 대신에 각 행에 'saveType'변수가있는 것을 고려 했습니까? –
'saveType'변수 주석의 의미는 무엇입니까? –
잘못된 방식으로 데이터를 생각한 것 같습니다. SQL에서 추적하고자하는 것을 설명 할 수 있다면 우리는보다 쉽게 테이블을 설정할 수 있도록 도와 줄 수 있습니다. – JoeCortopassi