社交应用中常有 用户选择自己的标签
1.每个标签有所属的分类
问题详情移步: https://segmentfault.com/q/1010000039746781
这样的标签系统,在数据库中都是怎么设计才好呢?^_^!
1
egglin 2021-04-01 10:05:58 +08:00
问就是图数据库
|
2
airqj 2021-04-01 10:32:08 +08:00 1
这东西用不着图数据库吧
用户选择的标签字段设计成 json,里面弄个数组存标签 id |
4
aragakiyuii 2021-04-01 13:50:54 +08:00
用位图
|
6
SlipStupig 2021-04-01 14:43:48 +08:00
看什么类型数据库吧,如果是 NoSQL 和图数据库,基本上都好说。
主要说一下 MySQL 类数据,tag 或者主题类的东西并不稳定可能会经常变动,也有可能是用户自我添加的,后期可能会有画像需求,所以我个人认为最好的办法是新增两张表: - tag_types:存储用户的 tag,需要有个主键和 tag 唯一标识,tag 名称 - Identity_tags: 里面存储一个主键、userid 、tagID 、还有时间戳,而且需要对用户 ID 和用户信息表做一个外键,防止意外 这个设计虽然会比较浪费存储,但是做画像、推荐都会很方便。虽然 Bitmap 效率很高,但是可读性不太行操作起来也方便 |
7
tabris17 2021-04-01 14:46:37 +08:00
tags 字段,存字符串,逗号分隔或者 json,如果是 postgresql 的话可以保存为数组
问题在于你要将这些 tags 数据用于哪些场景,比如计算余弦相似度之类的 |
9
simonlu9 2021-04-01 17:05:15 +08:00
这种 用一个 user_label 表存就可以啦,然后持久化到 es,新增用 mysql,查询也是 es,爽得一逼
|
10
nigulasida 2021-04-01 17:13:05 +08:00
postgresql 的位图扩展
|
11
tiedan 2021-04-01 17:20:47 +08:00
mongodb 就简单一些了直接用数组存
|
12
hjosama 2021-04-01 17:39:43 +08:00
如果是我的话第一时间想到 json,第二时间想到同一个用户+多个标签的表,如果是非常棒的项目可以设计得很好,否则上线就下线那种,还是用我的方法吧
|