2013-05-12 50 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

根據您的策略:

如果存儲唯一的每個用戶的文章(閱讀我以後的功能),您可以儲存物品的狀態。

如果您有任何用戶可以讀取的文章集,那麼您可以正確引入額外的表來存儲讀取狀態。這種方法我沒有看到任何錯誤。

相關問題