2010-10-06 90 views
1

我正在記錄用戶的所有行爲,並希望顯示他們的行爲,以供他們跟隨他們看 - 有點像Facebook爲朋友做的。MySQL加入朋友飼料

我記錄表中的所有這些行動具有以下結構:

  • ID - PK
  • 用戶ID - 他的行動得到記錄
  • actiondate用戶的ID - 行動發生時
  • actiontypeid - 類型的id動作(存儲在不同表中的動作類型 - 即跟隨其他用戶,寫在人的簡檔上,創建新內容,評論現有內容等)。註釋ID)
  • onobjectid - 他們做的動作,他們發表了評論的內容(即ID)的對象ID

現在的問題是有一些得到記錄幾種類型的動作( actiontypeid)。

什麼是檢索數據以顯示給用戶的最佳方式?

最簡單的出路是讓用戶跟隨數據集,然後從那裏抓取其他表中的所有其他信息(即用戶的姓名,剛剛開始關注的人的姓名,姓名他們所寫的用戶配置文件等)。然而,這會在while循環中創建大量的小查詢和訪問數據庫。不是一個好主意。

我可以使用連接來檢索一個海量數據集中的所有內容,但是我怎麼知道從哪裏獲取數據? - 有不同類型的要求我尋找到幾個不同的表來獲取數據的基礎上,actiontypeid行動......

即要得到用戶X正在關注用戶Y我有從追隨者表中獲取我的數據(用戶Y的用戶名),而用戶X的成分量Y評論需要我看在內容表來獲取內容的標題和URL。

歡迎任何提示,謝謝!

+0

嗯...我錯過了什麼嗎?你有兩張桌子還是隻有一張?你提到一個內容表和一個追隨者表,但你暗示一切都在一張桌子裏......也許你可以重新表述一下嗎?另外,您要爲用戶顯示哪些數據? – KeatsKelleher 2010-10-06 03:37:49

+0

我有兩個以上的表格,抱歉讓我感到困惑。這些動作被存儲在動作表中,動作類型表上的動作類型,用戶表中的用戶,內容表中的內容......我需要能夠從用戶和內容表中獲取信息,這些信息基於動作類型。 – Mihnea 2010-10-06 14:08:30

回答

1

考慮爲不同的actiontypeids創建幾個視圖。聯合他們有一個完整的歷史。