跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 社交应用 用户兴趣标签 数据结构设计?
未分類
3 4 月 2021

社交应用 用户兴趣标签 数据结构设计?

社交应用 用户兴趣标签 数据结构设计?

資深大佬 : hanyu5166 0

社交应用中常有 用户选择自己的标签

1.每个标签有所属的分类

问题详情移步: https://segmentfault.com/q/1010000039746781

这样的标签系统,在数据库中都是怎么设计才好呢?^_^!

大佬有話說 (12)

  • 資深大佬 : egglin

    问就是图数据库

  • 資深大佬 : airqj

    这东西用不着图数据库吧
    用户选择的标签字段设计成 json,里面弄个数组存标签 id

  • 資深大佬 : xuanbg

    @airqj 你这样没法根据标签拉用户列表

    一般就是一张用户标签表,里面 3 个字段:id | user_id | tag

  • 資深大佬 : aragakiyuii

    用位图

  • 資深大佬 : airqj

    @xuanbg 看了一下主的需求,好像没说有根据标签拉用户列表的需求
    有这需求的话你这方案确实更好 🙂

  • 資深大佬 : SlipStupig

    看什么类型数据库吧,如果是 NoSQL 和图数据库,基本上都好说。
    主要说一下 MySQL 类数据,tag 或者主题类的东西并不稳定可能会经常变动,也有可能是用户自我添加的,后期可能会有画像需求,所以我个人认为最好的办法是新增两张表:

    – tag_types:存储用户的 tag,需要有个主键和 tag 唯一标识,tag 名称
    – Identity_tags: 里面存储一个主键、userid 、tagID 、还有时间戳,而且需要对用户 ID 和用户信息表做一个外键,防止意外

    这个设计虽然会比较浪费存储,但是做画像、推荐都会很方便。虽然 Bitmap 效率很高,但是可读性不太行操作起来也方便

  • 資深大佬 : tabris17

    tags 字段,存字符串,逗号分隔或者 json,如果是 postgresql 的话可以保存为数组

    问题在于你要将这些 tags 数据用于哪些场景,比如计算余弦相似度之类的

  • 資深大佬 : xuanbg

    @airqj 应该会有这种需求的,不然打标签做咩?就是看看有个毛意思。

  • 資深大佬 : simonlu9

    这种 用一个 user_label 表存就可以啦,然后持久化到 es,新增用 mysql,查询也是 es,爽得一逼

  • 資深大佬 : nigulasida

    postgresql 的位图扩展

  • 資深大佬 : tiedan

    mongodb 就简单一些了直接用数组存

  • 資深大佬 : hjosama

    如果是我的话第一时间想到 json,第二时间想到同一个用户+多个标签的表,如果是非常棒的项目可以设计得很好,否则上线就下线那种,还是用我的方法吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具