我认为您没有正确使用 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 连接教程的链接。