數據庫設計的新手,我想知道如何有效地設計像Facebook喜歡的東西,考慮到未來的可擴展性。Facebook的數據庫設計「喜歡」
比方說,你有3個表格:用戶,照片和相冊。 假設用戶可以喜歡照片或相冊。
我應該使用1臺兩種類型的喜歡? 這可能意味着它會有一個user_id,like_type(0-照片,1-專輯等),like_value(無論它是什麼內容的id值,無論是photo_id還是album_id)?
或者有兩個不同的表,每個喜歡(例如photos_likes和albums_likes)? 這將只包含user_id說明和照片/ album_id
我想,以確保數據庫的設計是乾淨的,半scaleproof我們是否在未來增加更多的對象(視頻,評論,註釋等)或有噸的喜歡。
謝謝!
此外,如果數據量變大,它將節省空間。例如,擁有一個表會導致行對列的無用數據引用設置爲零的類型。 – BenOfTheNorth 2012-02-24 01:35:36