2013-11-04 27 views
1

我有不同的帖子類型,如狀態更新,項目,捐贈等。每種類型的帖子在數據庫中都有一個或多個表。用戶可以創建所有帖子類型。用戶擁有像Facebook這樣的牆,他可以看到他按照時間順序創建的不同帖子類型(最後創建的任何帖子類型應該位於牆的頂部)。用戶活動牆的最佳方法

什麼是最合適的方法?

  1. 從數據庫中獲取數據與不同的查詢存儲在數組中然後操作數組?
  2. 要編寫一個複雜的單個查詢,可以按時間順序從不同的表中獲取數據?
  3. 爲用戶活動創建單獨的表並存儲用戶執行任何活動時的數據?
  4. 你的方法與上面不同嗎?

回答

1
  1. 簡單的設置,不執行得很好(有一個非常壞的最壞情況)。

  2. 是最簡單的。你說複雜但你可以用UNION + ORDER BY構造很容易做到這一點。性能會相當不錯。

  3. 將執行我認爲最好的,但會有一些重複,事情可能會有點複雜。關係數據庫在多態性方面不太好。

重要的是要意識到在這些解決方案之間切換是相對容易的。如果你有一個面向服務的體系結構(或者一般的好設計)。所以我不會太擔心你選擇哪種方法。如果將來看起來你所選擇的方法不能很好地工作,你可以切換到另一個方法。