我有一個數據庫設計問題,我仍然很新的MySQL,所以我想我會問這裏。從多個表中獲取按時間順序排列的數據的最佳方式是什麼?例如,用戶做了很多事情,他們投票,評論,評分,提問。我將所有這些信息保存在各自的表格「tblVote」,「tblRate」等中,現在是棘手的部分。一個用戶可以跟隨一個或多個用戶,所以說你跟隨3-4人。以下允許您查看他們的互動,投票,評級,評論,提問問題等(如Facebook或類似的東西)。從多個表獲取Feed數據的最佳選擇?
從他們關注的每個人的所有5個表格中獲取所有信息,然後按照時間順序對所有信息進行排序,最佳方式是什麼?我假設我目前的方法(foreach追隨者抓住所有的投票,評論,評級等,並整理將是可怕的)
我的工作理論,所以我的工作理念是創建一個交互表,它有一個列的用戶id,其他表項的ID和一個類型引用。所以例如
用戶ID | InteractionID |鍵入
9 1232 Comment
10 80 Rating
9 572 Vote
然後,你可以先走一步,抓住所有互動每次跟隨的人,那種然後說搶前10名?並查詢各個數據庫以獲取完整信息(評論時間,評論文本等)
爲什麼不只是做一個多到許多用戶追隨者之間的關係。然後使用常規聯接從這5個表中獲取所需的所有信息,按datetime_col和LIMIT 10排序?我只是想知道什麼阻止你做你想做的事? – tempusfugit 2014-09-05 14:55:43
就像我說過的,我並不是超級用戶,但我只是假設每個用戶每桌上抓取數百/數千行將是瘋狂的資源密集型。 – CMOS 2014-09-05 14:58:39