在我的網站我有一個論壇,你可以啓動一個線程,迴應一個,刪除自己的帖子,報告他人的信息等簡單的查詢與簡單的數據庫
我決定做一個抽象和創建一個名爲activity
的表,它將存儲user_id
,time
(每個活動都有相同的字段)以及活動類型(線索,響應,報告,刪除)和(對應於相應表的id
) 。
開始時,這似乎是一個好主意,因爲它有助於避免冗餘,並且可以更容易查找某個用戶完成的操作,而無需詢問每個表。但與此同時,這種抽象會導致更復雜的查詢(例如幾乎每個簡單的查詢都必須使用INNER JOIN
),現在我遇到了更復雜的查詢問題。
所以我的問題是:我做出了正確的決定嗎?即使它導致非常昂貴的查詢,在真實生活環境中如何擁有一個完美的數據庫如此重要?
」正常化,直到它傷害,反規範化,直到它工作。「 –