0
您能否描述一下創建Facebook「like」功能表的最佳方式,我可以在其中存儲用戶喜歡的內容以及如何操作? (columsn,pks等) 另外,如果有可能,我想知道什麼是從該表中檢索數據的最好和最快的方法。SQL Server「Facebook Like」表設計建議
謝謝。
您能否描述一下創建Facebook「like」功能表的最佳方式,我可以在其中存儲用戶喜歡的內容以及如何操作? (columsn,pks等) 另外,如果有可能,我想知道什麼是從該表中檢索數據的最好和最快的方法。SQL Server「Facebook Like」表設計建議
謝謝。
因爲「喜歡」可以添加/刪除,它們與特定的用戶和用戶通常只能「喜歡」的東西一次,是有意義的創建這樣一個表:
CREATE TABLE Post_Likes
(
Post_ID int FOREIGN KEY REFERENCES Posts(Post_ID),
User_ID int FOREIGN KEY REFERENCES Users(User_ID),
created_date datetime,
CONSTRAINT PKC__Post_Likes__Post_id__User_id PRIMARY KEY (Post_id, User_id)
)
這裏有很多考慮因素。 post_id和user_id一起構成了一個很好的自然關鍵,但會容易出現碎片。有一個單獨的IDENTITY鍵不會增加很多,因爲post_Id上的重要索引仍然會被分割。值得擁有User_id上的另一個索引,這樣優化器可以快速找到用戶喜歡的類型,但最好調整一些真實的數據和查詢計劃。
除了這個表,我會緩存運行的總喜歡在Posts
記錄,所以你不必JOIN
到子表和SUM
所有喜歡每次顯示的東西的時候,也可以得到昂貴快。您可以使用觸發器維護該值,也可以將代碼保留在DAL中。