2013-05-12 49 views
1

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

+3

不,这是正确的方法。 – eggyal 2013-05-12 09:50:19

+0

你已经正确地做了。 – ajtrichards 2013-05-12 09:51:07

+0

不要低估数据库的威力:-) – Bart 2013-05-12 09:51:55

回答

2

可能有成千上万的文章和成千上万的用户。在“阅读文章”连接表中存储每篇文章/用户的行似乎是效率低下的方式。

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

此外,含有“成千上万的文章和成千上万的用户”的含义会翻译成很多行也是不正确的:您将为每个用户阅读的文章存储一行,而不是每篇文章,所以你得到的行数会比最坏情况估计的数量级要小。

0

根据您的策略:

如果存储唯一的每个用户的文章(阅读我以后的功能),您可以储存物品的状态。

如果您有任何用户可以读取的文章集,那么您可以正确引入额外的表来存储读取状态。这种方法我没有看到任何错误。

相关问题