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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanphaday/article/details/45505843

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

前一篇里没有提到,我跟刘老师谈到一个更加深入一点的、关于标签系统的想法。主要原因是因为我尚不肯定这是否也属于标签系统。直到最近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,最好的编程语言大概是不需要这些的。哈哈!

阅读更多
换一批

关于Netscape的一点想法

09-04

当别人纷纷指责微软时,我选择了沉默,因为我用的一直是微软的rn系统:从DOS,到Windows 98, Windows 2000, Windows XP.令我汗颜的rn是因为我比较懒,也比较笨,终于没有学会编程或Linux,更无缘于Sunrn系统或其它大型Unix的操作系统,因为我在学校时我学的是文科,非计rn算机专业,甚至连Windows都没有用,其它的同学也仅仅会用老版的WPSrn和几个五笔罢了,而我则汗颜地自学了foxbase,现在却都忘光了。rn对于我没有亲自用于其它产品,我无从比较,所以也就没有资格评价它的rn好坏。而对于为何我用微软产品的唯一的理由有二:1.就是因为好用;rn2.界面亲切。尽管我也同样觉得微软霸道,价格死高(不过我用的D版,rn呵),bug多多。rn 后来到工作中,接触了Windows产品:Win98,office 97. 这时,rn我非常感兴趣,我也就沉迷了一段时间,学会装系统,装软件,组建简单rn的局域网。一时,也是学了一点东西。其中,也曾想学linux,书也买了,rn光盘也买了,最终还是没有学成,因为:一、可能缺少环境,二、至今rnlinux仍未能在我的机器上成功安装。rn 所以平心而论,当别人贬低微软时,我只是保持中立。rn 上个月底,微软的死对头netscape发布了最新的流览器Netscape 7.0.rn大概还是3.0的时候,我曾用过几次,当时感觉比较复杂,我的计算机英语rn并不是很好(尽管我是英文专业毕业的)。通过4年的学习,我的计算机英rn语水平应该有了一个很大的长进。于是我想,还是用用Netscape吧,至少说rn算是对弱者的一个支持吧,至少说这种精神值得支持!于是我到NETSCAPE的rn主页上去下载,遗憾的是一直到今天我都未能上其主页上下载这个软件,好rn多链接是死链接。后来,我在PCWORLD上下载了下来,终于成功安装。rn 让我感到遗憾的是,当我打开天极网(www.yesky.com)首页时,发现上面的rn插件居然无法正常显示,在CSDN(www.csdn.net)打开网页时,速度不是很rn慢(我用的可是正宗10M宽带),而且网友的回复时全部滚动条,让人既看不清楚,又感到十分不愉活。你能想象一个页目上有十几个水平滚动条吗?而用IE时则是正常;后来收电子邮件时,发现速度也不是很快。我花了整整一个下午来研究它,rn可是最终只得失望地再次将netscape 7.0再次卸载!永别了,netscape!我真的rn不明白,netscape的软件测试人员究竟是怎么测试的?我从未敢为微软将好话,rn但是IE却真的没有这样的问题。其实,应该讲不是用户放弃了软件,而是软件rn抛弃了自己:因为它带来的不是方便,而是麻烦!很想在netscape的feeback中写rn封信给他们,可惜虽有这个功能,网页却始终打不开。我想,也许它真的快要rn走到尽头了吧!特别是像这样的网站上的新链接,居然在一周末竟未能打开过,rn真的有点怀疑他们的网管是否尽责。rn 只是,如果我不选择IE,我还能选择谁呢??rn 最后,我想说,评价一个软件的好坏的次序,应该是好用-功能-界面。因为rn人们用电脑是来方便工作与享受生活的,而不是来处理麻烦的!尽管我不会编程,rn还是衷心地希望我们的程序员们在编程时能考虑到这些,以方便最终用户!rnrnrn

没有更多推荐了,返回首页