我設計了使用PHP的新聞飼料系統/ MySQL的類似於Facebook的。PHP新聞飼料數據庫和設計
我以前也問過類似的問題,但現在我已經改變了設計和我在尋找的反饋。
實例新聞:
USER_A評論USER_B的新專輯。
"Hey man nice pictures!"
USER_B增加了新的照片爲[他/她] 輪廓。
[show photo thumbnail]
起初,我對實現這個OBJ1使用過度列:類型1 | Obj2:Type2 |等等。
現在的設計是建立使用幾個特殊的關鍵字,以及演員/接收器的關係。我的數據庫使用的郵件表中加入了含有用戶標識,actionid,receiverid,receiverObjectTypeID表,
下面是它的將是什麼樣子,一旦加入了一個濃縮版:
News_ID | User_ID | Message | Timestamp
2643 A %a commented on %o's new %r. SomeTimestamp
2644 B %a added a new %r to [his/her] profile. SomeTimestamp
%A =的的USER_ID做動作
%R =接收對象的人
%O =接收對象的所有者(例如專輯的所有者)(如果NULL%r是一個用戶)
個問題:
這是一個聰明的(有效的/可擴展)的方式前進?
我怎麼能存儲「事件預覽」?例如,如果我想顯示User_A對User_B所做的評論(如上所述,並在Facebook的新聞提要中)。我一直只使用相關數據的編碼副本..例如JSON編碼註釋文本或照片視爲HTML ..但這似乎脆弱(用戶可以刪除照片,而它仍然在另一個用戶的飼料)
如何顯示如下消息:「User_B向他的 個人資料添加了4張新照片。」與照片的縮略圖?
謝謝湯姆,我開始根據您的建議研究NoSql。有沒有一篇文章或其他資源可以幫助我理解/實施這樣的策略? 另外,我是否需要重構現有的關係數據庫以適應NoSql檢索? – pws5068 2010-05-20 18:54:12
我在http://delicious.com/yerfatma/nosql上有幾個書籤 - 列表中的最後一個聲稱是「NoSQL Required Reading」。數據庫和nosql存儲是兩個獨立的東西。他們根本不需要了解對方。這個想法是你儘可能少地從數據庫中獲取數據;一旦你有了PHP代碼中的數據,將它緩存在nosql存儲中,這樣你就可以從那裏得到它,直到它失效。 – Tom 2010-05-20 19:25:03
現在更清楚了,我會繼續我的研究。感謝您的幫助 – pws5068 2010-05-20 19:42:39