你正確使用SQLite數據庫,我不認爲顯示(不只是配方爲單元標題的名稱)。
這聽起來像你正在使用每用戶數據項的表格。
數據庫的強大之處在於將多個用戶,多個項目或多個數據的數據存儲到幾個表格中,然後稍後爲特定用戶或項目檢索數據。表應該添加,更新或刪除行,但一般來說,表不應作爲單獨的數據元素創建和銷燬。
我懷疑你不瞭解的是連接的概念。
一種你描述可能是這個樣子什麼設計:
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')
或獲得配方與成份列表:
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')
使用這樣的設計,當用戶添加一個新的配方,你只需添加行到食譜和recipe_ingredients表。或者,當他們添加新配料時,您可以在配料表中添加一行。
這裏有一個SQL joins tutorial的鏈接。
這聽起來像一個壞的數據保存設計。你有沒有考慮讓每一行都有一個'saveType'變量? –
'saveType'變量註釋是什麼意思? –
聽起來像您以錯誤的方式思考您的數據集。如果你可以描述你想要在sql中跟蹤的內容,我們可以更好地幫助你設置你的表格,這對你來說會更容易。 – JoeCortopassi