【问题标题】:How would you store in database who's liked something?您将如何在数据库中存储喜欢某物的人?
【发布时间】:2020-07-16 15:14:31
【问题描述】:

数据库应该如何存储谁喜欢某个帖子,我是否应该有一个单独的表来跟踪所有喜欢,并将每个帖子的每个喜欢放在一起,存储 article_id、user_id 和喜欢/不喜欢? 谢谢!

【问题讨论】:

  • 这种数据通常存储在图形数据库中,而不是关系数据库中。
  • 这是(显然)一个(很容易找到)常见问题解答。在考虑发布之前,请阅读手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。

标签: sql database database-design foreign-keys


【解决方案1】:

您正在描述用户和帖子之间的 N-M 关系,其中每个用户可能会喜欢多个帖子,并且每个帖子可以被多个用户喜欢。

我建议使用桥接表,外键引用帖子和用户表。

简而言之,它看起来像:

table: users
    user_id
    name
    ...

table: posts
    post_id
    title
    ...

table: users_like_posts
    user_id       -- foreign key to users(user_id)
    post_id       -- foreign key to posts(post_id)
    like_dislike   

【讨论】:

    【解决方案2】:

    一个选项可能是创建一个卡车喜欢和不喜欢的表格: 示例:

    喜欢和不喜欢可以是布尔值或您喜欢实现的任何其他值。

    Table:Like
    -----------------
    id     |  post_id | user_id |  like_dislike     |
    1      |  1234    |  13783  |      0            |
    2      |  1234    |  12083  |      1            |
    

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 2020-05-30
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多