php - 关注者列表最好存储在 CSV 数据库字段中吗?

标签 php mysql

<分区>

我想知道使用 PHP 和 MySQL 数据库生成关注者列表的最佳方法是什么。因此,这是我发现这可行的两种方法。

这是我找到的第一种方法:我可以为每个用户创建一个列,其中包含他们关注的所有用户的 ID。当我去检索列表时,我分解了 ID 列表,以便我可以选择每个用户的所有数据。

这是它在数据库中的样子:

User ID              Following
1                    2,3,5,6,7,9,10
5                    10,5,2,20,1

我发现的另一个解决方案是,每次用户想要将某人添加到他们的“关注”列表时,数据库将包含 1 行专门针对他们关注的那个特定的人。

User ID        Following
1              2
1              5
2              1
1              42

因此,从长远来看,我想知道哪种方法最有效地组织数据和检索数据以显示新闻源 - 最简单且成本效益最低。 (我已经有一个包含所有用户帖子的表格)。

最佳答案

使用第二个选项:一个表,每个后续记录都有一行。数据库旨在处理数百万行,所以不要害怕使用它们。特别是,仅存储整数的行将非常有效。您可以自由使用联接和其他功能。

逗号分隔的字符串解决方案不会扩展,因为数据库引擎必须不断地解析它是非常低效的,尤其是当它显着增长时。还要考虑您在该字段上放置的字段长度,您可能会发现随着用户获得更多关注者,您必须定期调整它的大小。

关于php - 关注者列表最好存储在 CSV 数据库字段中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29704444/

相关文章:

php - 无法在每个类别中保存数据 - PHP CSV

php - 在 Yii2 中访问数据

mysql - 在一个查询中查看所有数据库和表的示例的最佳方式是什么?

MySQL:如果多个值不存在,则插入多个值,但需要多列检查

javascript - 在不同服务器上使用 PHP 脚本从数据库中检索数据

php - 使用php提取字符串的第一个单词

c# - 带命令的 Crystal 报表未显示所有字段

php - SQL使空变量全选

php - 从 MySQL/PHP 中的查询创建表

CodeIgniter:找不到类 'CI_Controller'