首页 文章

对于存储按标签分类的笔记的应用程序,是否有更高效或更明智的系统?

提问于
浏览
0

我正在创建一个应用程序,它允许我根据标签编写注释并对其进行分类 . 这些注释主要是术语的定义,但它们可以是任何内容 . 对于与这些主题相关的注释,它们可以具有任何数量的标签,例如“经济学”,“历史”,“心理学”等 . 这允许应用程序的用户根据标签过滤笔记 .

我的基本结构是:

一个名为 Note 的类对象,它有三个成员:

  • 头[要定义的术语等]

  • 定义

  • 标签列表[与注释相关的 Tag 对象列表]

另一个类对象是 Tag ,它有三个成员:

  • 名称[标签名称]

  • 定义[不是必需的,但可以添加到标签中以阐明其含义或用法]

  • 注释列表[包含此标记的所有 Note 的列表]

全局 NoteList 存储所有Notes, TagList 存储所有标记 .

当用户创建新的 Note 时,应用程序将获取头部和定义并将它们存储在新的 Note 对象中 . 然后它接受用户输入到标记字段中的任何内容并用逗号分隔字符串(因此,如果用户输入"psychology, history",将生成两个单独的字符串"psychology"和"history" . )

然后对于每个字符串,例如"psychology",程序检查 TagList 中是否包含该名称的标签 . 如果没有,它会创建一个新的 Tag 对象,将当前创建的 Note 添加到该标记的注释列表,然后将新创建的 Tag 添加到全局 TagList . 如果标签已经在 TagList 中,则程序会更新该标签上的备注列表以包含新创建的备注 . 然后将标记添加到该 Note 对象的标记列表中 .

完成后, Note 将添加到全局 NoteList .

Tl;dr 音符和标签之间存在共生关系 - 每个音符包含与其关联的所有标签,反之亦然 . 我很简单地组织所有笔记 - 如果你想找出笔记有哪些标签,请查看笔记's tag list. If you want to find out which notes are contained in a tag, check the tag'的笔记清单 .

这种双向方法是构建这种应用程序的最合理和最明智的方法,还是有一种更有效的方法我没有考虑到?

1 回答

  • -1

    它是多对多关系的属性 . 因此,您构建了一个本机关系数据模型 .

相关问题