我是 Android 开发的新手,我正在开发一个备忘录/笔记应用程序,它允许用户包含主题标签,然后通过所述主题标签浏览保存的笔记。
我已经有一个笔记应用程序在工作,它只将笔记保存在 SQLite 数据库中,但我计划通过在我的每个笔记对象中包含一个主题标签数组列表来存储主题标签(它们已经存储在一个数组列表中)......
我的问题是,我将如何将这些数组列表的数组列表(注意标签数组列表的数组列表)存储到 SQLite 数据库中?
假设您有一个用于注释的 sql 表,您应该创建另一个表来存储主题标签。您可以通过保留一列来存储主题标签所属的注释 ID,将每个主题标签链接到它的注释。结构基本上应该是这样的:
备注表:
note_id | note
标签表:
hashtag_id | hashtag | note_id
这是一种简单的技术:只需将所有主题标签存储为单个字符串。
例如,假设一个笔记有 4 个标签 -#study, #homework, #school, #math
因此,您只需将它们存储为单个字符串,例如:
String hastags="study#homework#school#math"
现在将此字符串存储在 sqlite 数据库中作为hastag
每个注释对象的列。
Java 允许您轻松解析字符串,因此当您检索笔记时,您可以获取它的hashtag
列并根据分隔字符(在本例中为“#”)将其分隔为一个字符串数组(每个主题标签包含一个字符串元素),例如所以:
String hastags[]= hashtagStringFromDB.split("#");
现在,您在单个字符串数组中拥有该笔记对象的所有主题标签,您可以轻松使用hashtag[0], hashtag[1]...etc
另一种选择是创建另一个hashtags
表。每个主题标签都使用唯一标识符(外键)进入此表,以将其链接到notes
表中的注释。因此,您可以使用特定笔记的 查询此表,note_id
它将返回属于该笔记的所有主题标签。