我正在开发允许用户阅读文章的网站。我想实现一些功能,可以自动标记用户访问文章时读取的文章。问题是我不知道如何在db中存储读取的文章数据。可能有数十万篇文章和数千名用户。在“阅读文章”连接表中为每篇文章/用户存储行似乎效率低下。还有什么其他选择?
答案 0 :(得分:2)
可能有数十万篇文章和数千名用户。在“阅读文章”连接表中为每篇文章/用户存储行似乎效率低下。
每{user, article}
对存储一行的方案是正确的。具有大量行的暗示使得该方案效率低下是不正确的:现代数据库被优化以非常有效地处理大量行。
此外,将“数十万篇文章和数千名用户”翻译成大量行的含义也是不正确的:您将为用户阅读的每篇文章存储一行,而不是每篇文章,所以你获得的行数将是最坏情况估计值的数量级。
答案 1 :(得分:0)
取决于您的策略:
如果您为每个用户存储唯一的文章(稍后阅读我的功能),您可以使用文章存储状态。
如果您有任何用户可以阅读的文章集,那么您可以正确地引入其他表来存储阅读状态。我认为这种做法没有错。