我試圖設置一個數據庫模式,其中對象可以接收喜歡的東西。 我經常需要訪問任何給定對象的喜歡總數。如何在關係數據庫中實現「喜歡的數量」
我設置兩個表:
[OBJECT]
id
path
desc
[LIKES]
obj_id
user_id
timestamp
它將使SENCE給我實現一個場「nr_of_likes」的對象表,那將是每一個新行插入喜歡的時間增加表。 這應該比每個對象的喜歡數要快得多,對吧? 問題是我得到了多餘的數據,通常從我研究的內容來看,這並不好。 有關這類事情的一些最佳實踐是什麼?可以實施「nr_of_likes」字段嗎? 謝謝您分享您的意見!
其被稱爲去歸一化或記憶,經常因爲性能原因而被使用 –
將一個包含喜歡的總數的列添加到表中而不是獲得COUNT()並不理想。雖然閱讀速度可能會更快,但您必須考慮到每次數字更改時都必須不斷維護該列。另外,你會失去誰喜歡它的所有概念,以及何時。冗餘數據並不總是很糟糕,但您認爲在這種情況下冗餘數據是什麼? – Siyual