为了账号安全,请及时绑定邮箱和手机立即绑定

请教下各位,就是在论坛写文章的时候会有个给文章加标签的功能,请问这个数据库应该怎样设计?

请教下各位,就是在论坛写文章的时候会有个给文章加标签的功能,请问这个数据库应该怎样设计?

慕尼黑的夜晚无繁华 2019-03-29 23:19:05
我有想过存在文章表,用户输的标签又没办法控制的,这样的话就没办法对标签进行管理.比如现在我想要用标签做一个条件查询就不行.
查看完整描述

7 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

数据库的设计有三大范式,

1.是数据库中的字段是原子的,不能再进行拆分。标签貌似符合,但是标签也有标签单独的属性,如果后期要根据标签单独筛选出列表的话,不方便。


CREATE TABLE `user_label` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型',

  `lable_name` varchar(255) NOT NULL COMMENT '标签名称',

  `user_id` int(11) NOT NULL COMMENT '创建者',

  `create_time` datetime NOT NULL COMMENT '创建时间',

  PRIMARY KEY (`id`),

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='标签表';


查看完整回答
反对 回复 2019-04-23
?
冉冉说

TA贡献1877条经验 获得超1个赞

标签放单独的数据表,帖子数据表放一个tags字段,用|分割,标签中不允许出现‘|’字符。


查看完整回答
反对 回复 2019-04-23
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

建立一个表存放标签的 文章表添加一个字段存放标签id 当用户添加标签 检测标签是否重复 存放到标签表里 然后 更新文章表里的标签字段


查看完整回答
反对 回复 2019-04-23
?
HUX布斯

TA贡献1876条经验 获得超6个赞

两张表

  • 建立一个标签表

  • 一个文章标签关联表,字段为文章ID和标签ID
    这样查询的时候只要查询关联表标签对应的文章ID即可。


查看完整回答
反对 回复 2019-04-23
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

这应该是数据库设计中的多对多关系吧,设计3张表 文章表 标签-文章关联表 标签表, 标签文章表里设置双主键,分别是标签表跟文章表的ID, 查询的时候可以使用join语句直接过滤出想要的结果,还有一种方法 在新的mysql5.7里使用json来存放tag数据 这样可以避免设置多张表 如果答案错误,麻烦指出,如果满意,请帮我点赞 谢谢


查看完整回答
反对 回复 2019-04-23
  • 7 回答
  • 0 关注
  • 982 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信