关于标签系统的又一点想法。

原创 2015年05月05日 18:25:45

前段时间,写过一篇《关于标签系统的一点想法。》。但其实没有谈到里面的内容,是有一部分来自与刘鑫老师的聊天,当时他给了我许多肯定,也是让我觉得记录下来很有必要的原因。

前一篇里没有提到,我跟刘老师谈到一个更加深入一点的、关于标签系统的想法。主要原因是因为我尚不肯定这是否也属于标签系统。直到最近disylee 送了一本标签 : 标记系统设计实践给我,里面的一个小节让我为自己的想法找到了理论依据。

很不错的一本书,没有让我失望,解答了我心中的一些困惑。书有点啰嗦,但也正因为此显得“系统”,我向来觉得“系统”的知识才是知识,第三、四章是精华,喜欢思考的架构师可以一读。

接下来谈谈我的“又一点想法”。

大家做项目的时候,肯定为很多“属性”所烦恼过。比如你做一个电商网站,是卖衣服的,结果你为衣服建模,定义了一堆类似品牌、尺寸、颜色、材料、款式、工艺等字段。后来又做一个卖家具的电商网站,你发现之前定义的这些字段基本上没有用了。举个例子,之前衣服的尺寸,可能只是裤子的腰围,现在沙发的尺寸,却是长宽高的三维数据;如果把三维数据硬塞进原来的尺寸字段,又不利于检索和过滤。

这样的项目做多了,我就开始想,其实尺寸、品牌,等等,不就是一个标签吗?我随便加就是了。这时候遇到一个问题,就是标签的多义性,比如某物品你加了一个“绿色”的标签,这个有可能是它的外观是绿色的,也可能是它的品质是绿色的(有机食品什么的)。抓狂。这时候你可能会想到把属性名也加上去,比如以“color:green”作为标签,以消除二义性。

赞赞赞!

你跟我想到一块了。不过再往深想你会发现每次都需要对标签尝试做 attr:value 切分,还是非常不方便的,而且很多时候你需要在界面上对 attr 所对应的 value 进行归纳,因为在用户层面你最好是提供一个“颜色”的下拉框来让他选择,而不是让他输入 green。

所以我想到要建立两个表,一个专门来管理系统中用到的 attr,另一个则是相应的 value。在跟刘老师沟通时候,我想到的就是这些,这让我有点怀疑“这还算不算是标签”?走到读完上文说过的那本书,从那个 1930 年的印度图书管理员那里找到了依据,是的,这仍然是标签,但一般又称之为 Faceted classification。

每一个 facet 可以视为度量一个物体的角度。那么刚才说过的:

所以我想到要建立两个表,一个专门来管理系统中用到的 attr,另一个则是相应的 value。

就很合理了。这样的一个标签系统是如此的合理,以至于已经在许多现代电商网站已经使用多年,比如 amazon 能够很方便地使用尺寸、颜色甚至价格区间来进行商品检索,就得益于此。

当然,这方面也有很多开源的项目,额,可能我搜索的姿势不对,java 方面暂时没有找到相关的库,但 Python 的话,有一个基于 django 的 djfacet,也有一个基于 plone 的 collective.facets。壮哉我大蛇教。

额,至于 PHP,最好的编程语言大概是不需要这些的。哈哈!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

关于标签系统的一点想法。

我跟几个人谈到过我这个标签系统。标签系统,tagging,在 web 2.0 时代大行其道,特别是 del.icio.us 大量应用而广受关注。但如今,随着 del.icio.us 的消逝鲜有人关注了...

关于stat函数和根据st_mode 的值获取目标文件的文件类型和用户权限,及对相关系统宏的一点想法

关于stat函数和根据st_mode 的值获取目标文件的文件类型和用户权限,以及对相关系统宏的一点想法            谈论之前写说一下 stat 这个函数,这是个很有用的系统函数,大家都 知...

系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现...

系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现...
  • fzzsh
  • fzzsh
  • 2014年02月24日 09:39
  • 1198

我对后端优化的一点想法 (2012)

  • 2013年07月02日 10:28
  • 912KB
  • 下载

《象与骑象人》摘要及一点想法

总是轻易认同一种观点,此乃成个人思想之阻碍,以此自省。理解,转化,自我提升。------我的读书箴言 ================================================...

关于程序员面试的一点想法

作  者:david++ 发布时间:2012/10/12 18:58 从去年到现在,算算也面试过不少人了。对于如何通过面试找到合适的人才这个问题,也想了很多。面试往往都是,聊一聊技术和工作经验...

关于遥感图像的控制点片匹配算法的一点想法(一)

    在遥感图像的几何纠正过程中,可能会用到控制点库的点片自动匹配。关于控制点片匹配的算法有很多种,从最基本的分类可以分为基于像元的点片匹配和基于特征的点片匹配,由于基于特征的算法难度较大,一般使用...

Nginx反向代理和负载均衡的一点想法以及常见错误

反向代理负载均衡 使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求均匀转发给多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于标签系统的又一点想法。
举报原因:
原因补充:

(最多只允许输入30个字)