我对Android和SQLite都很陌生。我正在开发一款应用程序,要求用户创建自己喜欢的艺术家列表。
我已经实现了一些已经显示此艺术家数据的图表。我相信我可以很容易地弄清楚如何实现向列表添加数据。
我想在SQLite中有两个单独的表:
列表(用于存储用户创建的列表名称)
ChartItems(会存储图表项目及其所属的列表)
但是Lists表在这种情况下只需要一个字段“ListName”,所以我认为为此设置一个表可能并不重要。
是否可以在从用户那里获得输入时动态创建表?
例如:用户创建一个列表,该值随后用于创建表。
感谢。
答案 0 :(得分:0)
您不希望动态创建新表。你对两张桌子的建议很好。列表应至少有两个字段 - 一个名为id或_id的整数字段(主键)和一个列表名称的文本字段。 Chartitems表将有一个字段(listid),它保存它所属的列表的id。这意味着chartitem只能属于一个列表,并且通过在其记录中设置listid字段来实现向列表添加chartitem。这是一对多的关系。
如果你想在一个以上的列表中有一个图表项目,那么你需要一个多对多的关系,这是通过拥有第三个表(链接)来实现的。此表将有一个字段映射到列表(listid),一个字段映射到chartitem(itemid)。要将chartitem添加到列表,您可以在链接表中创建相应的链接条目。在这种情况下,chartitem表不需要listid字段。
我建议阅读更多有关数据库关系的内容,以澄清这些概念。我强烈建议遵循的一个原则是让每个表包含一个名为id的字段,该字段是该表的主键,并将其用于来自其他表的所有引用。从长远来看,这比在关系中使用其他字段(如名称)要好得多。