1

我正在开发允许用户阅读文章的网站。我想实现在用户访问文章时自动标记已读文章的功能。问题是我不知道如何将读取的文章数据存储在数据库中。可能有数十万篇文章和数以千计的用户。在“阅读文章”连接表中为每篇文章/用户存储行似乎是一种低效的方式。还有什么其他选择?

4

2 回答 2

2

可能有数十万篇文章和数以千计的用户。在“阅读文章”连接表中为每篇文章/用户存储行似乎是一种低效的方式。

每对存储一行的方案{user, article}是正确的。拥有大量行会使该方案效率低下的含义是不正确的:现代数据库经过优化以非常有效地处理大量行。

此外,将“数十万篇文章和数千名用户”转换为大量行的含义也是不正确的:您将在用户阅读的每篇文章中存储一行,而不是针对每篇文章,因此您获得的行数将比最坏情况估计值少几个数量级。

于 2013-05-12T09:57:20.293 回答
0

根据您的策略:

如果您为每个用户存储唯一的文章(稍后阅读功能),您可以将状态与文章一起存储。

如果您有一组任何用户都可以阅读的文章,那么您就可以正确地引入附加表来存储阅读状态。我认为这种方法没有任何问题。

于 2013-05-12T09:57:23.020 回答