php - 关注者/关注数据库结构

标签 php mysql database database-design

我的网站有一个追随者/追随系统(如 Twitter)。我的困境是创建数据库结构来处理谁在关注谁。

我想出的是创建一个这样的表:

 id  |  user_id  |  followers |  following
  1  |    20     |  23,58,84  |  11,156,27
  2  |    21     |  72,35,14  |  6,98,44,12
 ... |   ...     |    ...     |     ...

基本上,我认为每个用户都会有一行包含他们的关注者和他们关注的用户的列。关注者和他们关注的人的用户 ID 用逗号分隔。

这是一种有效的处理方式吗?如果没有,最好的选择是什么?

最佳答案

这是最糟糕的做法。它反对规范化。有 2 个单独的表。用户和 User_Followers。用户将存储用户信息。 User_Followers 将是这样的:

id | user_id | follower_id
1  | 20      | 45
2  | 20      | 53
3  | 32      | 20

User_Id 和 Follower_Id 将是引用 Users 表中的 Id 列的外键。

关于php - 关注者/关注数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734154/

相关文章:

php - 如何检查用户是否选择了多个复选框

mysql - 自动增量字段加载超过10000条产品数据

mysql - 使用 Heroku (Express Server) 部署时如何创建 MySQL 模式

mysql - mysql 统计工作日中某些天为空的情况

php - 为 Crud 类扩展基础数据表类

php - 如何在 mysql 中使用 firebase token ?

php - 在 linux 中升级 OpenSSL 后,php 中的 OpenSSL 和 curl 不更新

MySQL:快速查找在另一个表中没有对应行的行

mysql - mysql中每组前N个Sql问题

database - 在启动数据库模型之前