我一直认为标签与普通文件夹层次结构模型完全不同。我正在构建一个需要标记以标记数据集的系统。我们已经完成了数据库设计,(相当直接的模型),但围绕在标签世界中仍然具有层次结构概念的价值进行了辩论。
在SOF上,作为一个例子,唯一的等价物是我在一些标签名称中使用-
看到的一些内容,如标记; jquery
,jquery-ui
,jquery-ui-dialog
因此没有固有的建模关系(只是命名约定)。
关于在标记世界中如何以及是否存在层次结构,是否存在关于最佳实践的传统智慧?
答案 0 :(得分:4)
我开发了一个涉及分层标签的门户网站。我可以向你保证,管理起来很麻烦:)
我的解决方案然后转向混合方法,其中标记可以是独立的或以数据方式处理,但它们位于两个不同的命名空间中。
这是因为某些标记可以被视为其他标记的父级的子级,而其他标记则不能,因此例如dialog
标记是一个与jquery
无关的概念,因此具有两个标记的内容{ {1}}隐含了所需的关系。
应该使用分层来表达概念之间的一种继承,例如。 jquery dialog
collections -> trees, lists, maps
标记可以有效地包含在trees
标记中的collections
。
在您的示例中,dialog
和jquery
是正交且无法比较的,因此将另一个孩子制作成另一个孩子是没有意义的。
答案 1 :(得分:2)
名称“jquery”,“jquery-ui”,“jquery-ui-dialog”不是标签,而是文件结构路径的等价物,本质上是分层的。
如果您的数据易于权威分类,则将其显示为树。如果用户只看到他们自己的一些标签(例如在Gmail中),则可以对标签列表进行排序和嵌套,并为每个用户保存该结构,与标签本身分开。如果有很多标签具有内容的功率分配(例如,如果10%的标签描述了90%的内容),那么标签云可以提供帮助。
简而言之,这取决于数据。
答案 2 :(得分:0)
层次结构通常具有缺点。
想想书签和tag-bundles like delicious.com。
我更喜欢使用sport
和newer-than-1-week
以及(english-language
或chinese-language
)而不是(soccer
或boxing
)来搜索集合。< / p>