我正在爲我的客戶創建一個社交網絡,他們需要類似Facebook的牆和用戶最近的活動。用戶活動或單個選擇查詢的單個表
我有大約8表說,用戶帳戶,信息,組,評論,頁面,相冊,喜歡,股票。
在user profile
中,他們需要網站中用戶的整個活動。
我可以使用單個加入查詢或需要具有單個表作爲最近的活動。
我正在爲我的客戶創建一個社交網絡,他們需要類似Facebook的牆和用戶最近的活動。用戶活動或單個選擇查詢的單個表
我有大約8表說,用戶帳戶,信息,組,評論,頁面,相冊,喜歡,股票。
在user profile
中,他們需要網站中用戶的整個活動。
我可以使用單個加入查詢或需要具有單個表作爲最近的活動。
您可能會考慮創建一個log
或activity
表,其中包含其最近活動的記錄。這樣你只需要一個查詢。您可以根據活動類型加入其他表格。
更好看它的商品絕對我試試 – user737767 2011-05-25 04:44:09
您可以通過聯合查詢從不同的表中提取數據並存儲在視圖中。這裏的總體思路...
create view 'v_recent_activity' as
select user_id, 'comment' as action, comment_text as action_info, comment_date as action_date from comments
union
select user_id, 'photo' as action, photo_url as action_info, photo_date as action_date from photos
union
select user_id, 'page' as action, page_url as action_info, comment_date as action_date from pages
union
select user_id, 'likes' as action, like_info as action_info, comment_date as action_date from likes
union
select user_id, 'shares' as action, share_info as action_info, share_date as action_date from shares
然後,你可以用一些訪問它像
Select * from v_recent_activity where action_date between <begin_date> and <end_date>
或聯接
Select a.*, b.* from users a join v_recent_activity b on a.id = b.user_id where a.id = <user_id> and b.action_date between <begin_date> and <end_date>
我認爲這種觀點不起作用,因爲我需要實時。 – user737767 2011-05-25 04:43:33
視圖是實時的。它們本質上是「存儲查詢」,可以作爲表格進行訪問。他們總是使用實時數據。如果您需要動態創建查詢以包含/排除某些表格,則仍然可以使用該視圖並更改其中的'action =
示親切加入的你正在做 – Ibu 2011-05-25 04:20:59
我有尚未開始我問用戶,我該怎麼做? – user737767 2011-05-25 04:27:07
這一切都取決於表是如何相關 – Ibu 2011-05-25 04:28:56