|  在技术加营销的道路上越走越远
温馨提示
我是弹窗内容
当前位置:首页 > 后端技能提升 > 研发内容系统时有分类字段了,还需要标签字段吗?分类和标签有什么区别?
研发内容系统时有分类字段了,还需要标签字段吗?分类和标签有什么区别?

研发内容系统时有分类字段了,还需要标签字段吗?分类和标签有什么区别?

日期:2023-11-03 浏览量:192 原创作者:湖八爷
最近在做的一个新项目,涉及到内容的发布,我要求负责该功能的小伙伴给内容设计好分类表和标签表。
但是这个小伙伴拿到需求以后,向我提出了疑问:他觉得已经有分类表了,为什么还要标签表?如果需要把内容细分一些,可以把分类表设计成多级分类就可以了。

看到小伙伴的这个疑问,我就回想起我当初研发【湖八爷博客】时也纠结过这个问题,我相信对于大多数初次研发内容系统的小伙伴来说,都很容易混淆分类和标签的概念以及用途,所以今天就用这篇文章帮大家梳理一下分类和标签的区别。



一,分类和标签有什么区别?

要搞懂分类和标签的区别,首先需要理解分类和标签的概念。

1:分类是指将内容按照不同维度划分成多个类别,类别与类别之间具有排他性,也就是说一篇内容在同一维度下只能属于一个类别


2:标签则是将内容的具体特点进行标记,而一篇内容可能存在多个明显的特点,也就是说一篇内容可以同时拥有多个标签


3:分类是自上而下,即先有分类再有内容,是固定的严谨的。标签则是自下而上,即一定要先有内容才有标签。



二,研发内容系统时如何设计分类表?

1:由于分类是自上而下的,根据需求不同,分类的层级也会不同。所以我们不需要想太多,针对这种需求可以直接采用“树形结构”的表设计思路。


2:分类表的具体字段如下。

id:唯一标识符,用于表示每个分类的ID。通常为主键字段。

name:分类名称,用于表示分类的名称。该字段应该唯一且不能重复。

parent_id:父级分类ID,用于表示该分类的父级分类的ID。如果该分类是根分类,则parent_id为0或者为NULL。通过该字段可以构建出分类的层级关系。

path:分类路径,用于表示从根分类到该分类的路径。该字段可以方便地获取到某个分类的完整路径(如果没有该字段,则需要多次查找才能获取到某个分类的完整路径)。

icon:分类图标,移动端APP经常会用到分类图标。

display:是否隐藏,控制分类的显示和隐藏。

sort:分类排序,控制分类的前后排序。

create_time:创建时间,用于记录该分类的创建时间。

update_time:更新时间,用于记录该分类的最后更新时间。


采用这种“树形结构”的表保存分类,不需要担心分类层级(因为一级分类,二级分类,多级分类都可以满足)。



三,研发内容系统时如何设计标签表?

1:由于标签和标签之前没有上下级关系,针对这种需求可以直接采用“扁平化”的表设计思路。


2:标签表的具体字段如下。

id:唯一标识符,用于表示每个标签的ID。通常为主键字段。

name:标签名称,用于表示标签的名称。该字段应该唯一且不能重复。

create_time:创建时间,用于记录该分类的创建时间。

update_time:更新时间,用于记录该分类的最后更新时间。



四,添加内容的时候如何关联分类和标签?

1:关联分类很简单,只需要在内容表中添加一个分类字段(int类型),保存所属分类的id即可。


2:关联标签也很简单,可以参考知乎话题标签。

在添加标签的输入框中输入文字的时候查询出相关联的标签,选中后可以添加下一个标签。

如果标签表中没有这个标签,可以直接创建一个标签。

然后在内容表中添加一个标签字段(string类型),保存选中后的标签id,多个标签id用","拼接起成一个字符串即可保存(之后查询的时候分割一下该字符串即可得到所有标签id)。


知乎话题标签.jpg