Android - 配置 SQLite 表以满足我的需求

Posted

技术标签:

【中文标题】Android - 配置 SQLite 表以满足我的需求【英文标题】:Android - Configuring SQLite Tables to meet my needs 【发布时间】:2016-09-24 01:26:04 【问题描述】:

我不知道如何处理我的表。 场景 -

食谱书!

我有一个带有添加按钮的主页,当点击我添加餐点时,当点击餐点保存按钮时我添加食谱。现在这里是棘手的地方。

在我的食谱添加页面上,我希望能够添加一种成分,然后可以选择(按 + 按钮)添加另一种成分,但我不确定如何执行此操作....

目前的表:

Meal Table
e.g Meal id, meal name

Recipe table
e.g Recipe id, recipe name, Ingredients

现在我是否必须制作一个包含 20 列的名为“成分”的表格,以便用户能够放入 20 种成分,还是有更简单的方法??

任何帮助都会很棒。

编辑:愚蠢的问题

【问题讨论】:

您实际上应该有一个成分表 - 它将只包含一个项目列表(一旦添加到配方中,它们就会成为成分) - 您的成分不会 20 列 - 至少 2 列(id,和项目的名称/描述)。然后,食谱还应包括每种成分的数量(例如,2 克这个,1 克那个)。然后,您可以创建一个“连接”表,将成分及其数量与配方相关联(例如 MyRecipe-ID、Sugar-Item-ID、0.5 克)。 【参考方案1】:

根据基本的数据库原则,多值属性(在您的情况下为成分)应放置在以(成分 id,配方 id)作为主键的不同表中。在此表中,您可以有 3 列,即配方 ID、成分 ID 和成分名称。我希望这是您想要实现的目标。

【讨论】:

【参考方案2】:

您有几个选择。您可以link your ingredients to another table 或serialize 将您的成分列表转换为单个值以进行存储并在检索时对其进行反序列化。

【讨论】:

以上是关于Android - 配置 SQLite 表以满足我的需求的主要内容,如果未能解决你的问题,请参考以下文章

同时访问多个线程的SQLite数据库

限制一个 sqlite 表的最大行数

日积月累--exception记录

如何在 Visual Studio 2013 中为 sqlite 配置实体框架 6

Android SQLite - 连接两个表并将结果呈现为列表

iOS - 一种浏览sqlite数据库的方法[重复]