【问题标题】:Dynamically creating tables in SQLite with user input in Android使用 Android 中的用户输入在 SQLite 中动态创建表
【发布时间】:2013-02-26 22:38:40
【问题描述】:

我对 Android 和 SQLite 还是很陌生。我目前正在开发一个需要用户创建他们最喜欢的艺术家列表的应用程序。

我已经实现了一些已经显示该艺术家数据的图表。我相信我可以很容易地弄清楚如何实现向列表添加数据。

我想在 SQLite 中有两个单独的表:

  • 列表(存储用户创建的列表名称)

  • ChartItems(将存储图表项及其所属的列表)

但是,在这种情况下,Lists 表只需要一个字段“ListName”,所以我认为为此拥有一个表可能并不重要。

是否可以在获取用户输入时动态创建表格?

例如:用户创建一个列表,该值随后用于创建一个表。

谢谢。

【问题讨论】:

  • 我个人比较喜欢两表法,用“listId”字段来链接。

标签: android sqlite


【解决方案1】:

您不想即时创建新表。你对两张桌子的提议很好。列表表应该至少有两个字段 - 一个称为 id 或 _id 的整数字段,它是主键,以及一个用于列表名称的文本字段。 Chartitems 表将有一个字段 (listid),其中包含它所属列表的 id。这意味着一个图表项只能属于一个列表,而将一个图表项添加到列表中是通过在其记录中设置 listid 字段来实现的。这是一对多的关系。

如果您想在多个列表中包含一个图表项,那么您需要一个多对多关系,这是通过拥有第三个表(链接)来实现的。此表将有一个字段映射到列表 (listid),还有一个字段映射到图表项 (itemid)。要将图表项添加到列表中,您可以在链接表中创建适当的链接条目。在这种情况下,chartitem 表不需要 listid 字段。

我建议阅读更多有关数据库关系的内容,以阐明这些概念。我强烈建议遵循的一个原则是让 每个 表包含一个名为 id 的字段,该字段是该表的主键,并将其用于其他表的所有引用。从长远来看,这比在关系中使用其他字段(如名称)要好得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-11
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多