将喜欢某物的人存储在数据库中

问题描述 投票:0回答:3

数据库应该如何存储谁喜欢某个帖子?

我是否应该有一个单独的表来跟踪所有喜欢,并将每个帖子的每个喜欢保存在一起,存储article_id,user_id和喜欢/不喜欢?

sql database database-design foreign-keys
3个回答
2
投票

您正在描述用户和帖子之间的 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   

0
投票

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

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

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

-1
投票

帖子 id 和用户 id 大多是随机的吗?

© www.soinside.com 2019 - 2024. All rights reserved.