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

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

关于标签系统的又一点想法相关推荐

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

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

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

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

  3. 关于知识图谱上下级概念建设的一点想法

      对知识图谱有所了解的人,都知道知识图谱是对知识的整理,以点和边的形式呈现,属于人工智能中的"符号主义"流派.虽然知识图谱可以清晰地告诉我们各个知识点之间的关联和区别,但我们还是 ...

  4. mysql+php+模板+条目_PHP.MVC的模板标签系统(四)

    页面布局 在这个单元中我们将看到如何使用模板标签系统构造一个标准的模板页面.这个例子我们使用了一个简单的HTML页面布局,请看下图: 这个页面有多个标准单元组成,就像页面设计者和开发者熟悉的那样.这个 ...

  5. 关于软件系统维护的一点想法

    最近刚好在写一份关于系统维护的应标书,突然对系统维护有了一点想法. 众所周知,系统维护是很头疼的,需要维护的有以下几个地方: 1. 在使用过程中用户提出新的需求变更,要求修改系统: 2. 系统有bug ...

  6. 2023-01-03 有关C++继承多态的一点想法

    有关C++继承多态的一点想法 前言 一.面向对象, 多态, 继承和你想的可能是相反的 二.面向对象, 遵从简单的原则 总结 前言 最近看了一道题目, C++实现多态的时候父类指针如何调用子类独有的数据 ...

  7. 易语言和python混合编程_关于易语言与Python的一点想法

    易语言与python的一点想法">关于易语言与Python的一点想法 小香蕉 2019年7月11日 说在前面 最近吃饭的时候总是会想很多关于易语言的事情.易语言是我学会的第一门语言,虽 ...

  8. 数据中台 画像标签_中台产品经理必懂(4):数据中台标签系统

    自从我更新中台系列以来有很多键盘侠吐槽,中台和管理后台有什么区别?不了解的没有实战过的朋友真的会以为中台就是管理后台,非也,中台更接近于一种思想和设计理念,并且不是所有产品线的管理后台,而是对于所有产 ...

  9. 如何设计标签系统?如果构建用户画像

    关于标签体系,我们经常会听到这样一些问题: 图 企业思考的问题 在与众多企业的接触过程中,我们发现不少企业对标签体系和用户画像存在着一些迷思,构想经常如空中楼阁般浮在空中,他们时常将过多的精力陷在体系 ...

最新文章

  1. 阿里大神分享API网关在微服务架构中的应用!
  2. Visual Studio 2017为Android APK包签名
  3. kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
  4. ajax传参到实体类对应字段
  5. 思杰 Citrix xen server 6.2 企业级布署(一)
  6. redis集群环境搭建入门
  7. 使用tcpdump抓Android网络包
  8. 熊猫烧香病毒作者再被捕 开网络赌场敛财
  9. 智能卡APDU的命令及其解析
  10. 支付宝小程序使用阿里图标
  11. php腾讯云短信接口调用
  12. 程序员须学计算机语言,新手程序员需要学什么编程语言
  13. 机器学习(十六)推荐系统
  14. 一文读懂JS继承相关知识点
  15. mysql启动时自动启动event事件
  16. 牛奶可乐经济学之Q13:为什么“几乎”全新的二手车,售价比全新的车低得多?
  17. 高通骁龙835无线充电手机_高通的快速充电5可以在15分钟内为手机充电
  18. getElementsByClassName用法
  19. Android studio 的快捷键对应 MAC 和Win版本
  20. SQL创建-----表

热门文章

  1. SCI文献阅读报告模板
  2. 国内云服务器厂商该怎么选择?那个比较好?
  3. A4纸的长宽尺寸怎么这么奇怪啊?
  4. ubuntu下安装python-docx
  5. 如何判断一个二极管是硅管还是锗管
  6. 个推推送项目实用(一)
  7. 3D格式转换工具HOOPS Exchange助力3D 打印软件实现质的飞跃
  8. 蓝桥杯星期几/wps设置填充方式:按年/月/日填充
  9. 【Redis】Redis基础知识点
  10. Elasticsearch的原理详解和使用