我正在创建一个应用程序,它允许我根据标签编写注释并对其进行分类 . 这些注释主要是术语的定义,但它们可以是任何内容 . 对于与这些主题相关的注释,它们可以具有任何数量的标签,例如“经济学”,“历史”,“心理学”等 . 这允许应用程序的用户根据标签过滤笔记 .
我的基本结构是:
一个名为 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 回答
它是多对多关系的属性 . 因此,您构建了一个本机关系数据模型 .