2010-10-06 95 views
3

我一直将标签视为与普通文件夹层次模型完全不同。我正在构建一个需要标记来标记数据集的系统。我们的db设计全部解决了(非常简单的模型),但围绕标签世界中的层次结构概念仍然存在争议。标签应该有层次结构吗?

在SOF,作为一个例子,只相当于我看到一些这方面通过使用像标注一些标签名称-; jquery,jquery-ui,jquery-ui-dialog所以没有固有的建模关系(只是一个命名约定)。

有最佳实践围绕着如何和是否应在标签的世界存在任何层次的传统智慧?

回答

3

我开发了一个涉及分层标签的门户。我可以向你保证,是管理:)一塌糊涂

我的解决方案,然后转移到一个混合的方法,其中标签可以是独立的或hiearchically处理,但他们存在于两个不同的命名空间。

这是因为一些标签可以被看作是其他标记的父母的孩子,有些则不能,因此,例如dialog标签是同样来自jquery因此内容indipendent有两个标签具有隐含jquery dialog需要的关系的概念。

层次应该被用来表达概念之间的一种继承关系,例如。 collections -> trees, lists, maps其中trees标签可以有效地包含在collections标签内。

在你的例子中dialogjquery是正交的和不可比较的,所以把另一个孩子做成是没有意义的。

2

名称“jQuery的”,“jQuery的用户界面”,“jQuery的UI的对话”都没有标签,但文件结构路径相当于自然分层。

如果你的数据很容易权威分类,然后将其显示为一棵树。如果用户只能看到他们自己的一些标签(例如在Gmail中),则可以对标签列表进行排序和嵌套,并为每个用户保存该结构,与标签本身分开保存。如果有大量标签与内容配电(例如,如果10%的标签描述了90%的内容),那么标签云可以提供帮助。

总之,这取决于数据。

0

层次结构与集合相比通常具有缺点。 想到书签和tag-bundles like delicious.com。我倾向于使用sportnewer-than-1-week和(english-languagechinese-language)而不是(soccerboxing)搜索一组。