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

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

转载于:https://www.cnblogs.com/aiwz/p/6154292.html

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

  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. 汤家凤高等数学基础手写笔记-空间解析几何
  2. 用户与订单之间的关系_wms与oms、tms的上下游关系
  3. 学习sql注入:猜测数据库_面向数据科学家SQL:学习简单方法
  4. LeetCode 260. 只出现一次的数字 III(位运算)
  5. Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据增量索引构建
  6. MetaTransformer:简单到尴尬的视觉模型
  7. python的前端开发_Python开发【前端】:html
  8. 中国的城市看多了,贴贴美国的城市,肯定对你的视觉产生冲击
  9. VMware桥接模式下主机和和虚机间互相ping不通的处理方法
  10. linux下命令行操作快捷键及技巧
  11. Objective-C 协议(protocol)
  12. DIV+CSS网页设计布局应用详解视频教程
  13. 【问题解决】c.a.c.n.c.NacosPropertySourceBuilder : parse data from Nacos error,dataId:xxxxxx.yml
  14. C语言队列的基本实现
  15. Ubuntu 16.04 利用Sakurafrp工具管理多节点多隧道ID 实现 ssh 内网穿透
  16. 清除网页缓存的快捷键
  17. 刷百度权重那些不为人知的事情
  18. shell脚本中执行ssh
  19. 鸡呼吸疾病常见的症状 防治鸡打喷嚏的特效药
  20. 动态规划——斐波那契数列(70. 爬楼梯、198. 打家劫舍、213. 打家劫舍II、信件错排、母牛生产)

热门文章

  1. zoj3557 插板法卢卡斯求组合数取模
  2. qsort与sort()
  3. [YTU]_2535( C++复数运算符重载(+与))
  4. 1、excel常用技能(数据分列、数据快速浏览、转置、选择性粘贴运算、绘制对角线、单元格内换行、插入注解文字或图片)
  5. cx oracle 返回码,oracle错误代码处理cx_oracle
  6. 马科维茨的均值方差模型(MPT)粒子群优化--Python实现
  7. blockingdeque java_Java BlockingDeque解决生产者与消费者问题
  8. Android开发自定义View
  9. dva.js在index。tsx中获取script标签引用的文件
  10. Flash和滚动字幕