僅供參考,這裏是SO一個問題,我問最近,是有關這個問題:How to model Friendship relationships在社交網絡環境中,檢查全球友誼最簡單的方法是什麼?
關於這個問題,我們想出一個辦法只有張貼好友可以顯示新聞源項目。但是,我需要的是關於如何以更動態的方式檢查友情的建議,以便它可以用於多個網站功能。
例如,我剛剛安裝了評論系統,允許用戶在新聞帖子上發表評論。但是,這不僅限於朋友,它應該是(後來應該由帖子的作者選擇)。
僅由朋友發佈新聞項目稍有不同,因爲我直接從數據庫獲取數據,並且使用SELECT
子查詢僅獲取當前用戶的朋友的帖子。但是,在評論的例子中,如果該人是朋友,我只想顯示評論帖子表單。我實際上並沒有從數據庫中提取任何東西來挑選,排序和顯示。
知道這樣的問題會在整個網站上出現很多次,檢查友誼最簡單的方法是什麼? 我可以以某種方式將所有朋友的用戶ID從數據庫中提取到某種會話數組中,然後每當我需要確定相關人員是否是當前登錄用戶的好友時,都會執行一個if(in_array($friends))
?關閉我的頭頂,這聽起來像它會正常工作,但我希望你的輸入第一。
我上面鏈接的問題解釋了我的友誼表是如何工作的,以幫助您解決這個問題。
'MY_DATA_ACCESS_LAYER.IS_FRIEND(my_id,other_id)' - 使用數據庫。喜歡數據庫。以後擔心「其他的東西」。 (一個微不足道的擴展是使它能夠同時處理多個ID;重點是:如果它隱藏在DAL中,那麼它無關緊要,而且當真的* if * - performance *是* an時問題有很多方法來處理它。) – 2011-10-08 03:14:46
@pst,你介意給我解釋一下好嗎? 「MY_DATA_ACCESS_LAYER.IS_FRIEND(my_id,other_id)」究竟是什麼?我將如何使用它?你能提供一個例子嗎? – vertigoelectric
它是DAL(數據訪問層)的一部分,將「使用數據庫」。這個名字很殘酷,被選中脫穎而出。不同的框架將促進不同的DAL方法,但它聽起來像已經存在:也就是說,*不要擔心會話或in_array的東西。只有在經過驗證的性能用例不能滿足要求時才擔心「限制小數據庫的使用」。 – 2011-10-08 22:42:41