2016-06-09 18 views
1

假設我們有服從規範化規則,兩個表:向表中添加一列而不是進行聯接操作會更好嗎?

CommentTable : cID , userID , cContent , cDate . 
UserTable : userID , uName, uBirth .... etc. 

這裏,內部聯接將是用戶ID和我們的目標是隻拿到UNAME一個缺少CommentTable。我知道加入操作很昂貴。所以應該添加uName?或服從正常化?

注:我沒有在stackoverflow中找到任何類似的問題。

回答

3

不要反規範化。至少,不要去標準化。

一般來說,你想開始你的數據庫設計完全標準化。聲稱「加入費用昂貴」被誇大了,因爲現代RDBMS引擎對於加入非常有效。

下一步是根據需要分析和定義索引。通常,這是您的優化結束的地方,因爲正確的索引應該能夠達到您需要的性能。

在極少數情況下,如果您必須從RDBMS中擠出最後一滴性能,則可以進行標準化。但是應該理解,非規範化數據是維護責任,並且只有在分析表明非規範化是實現可接受的性能的唯一方法時才應該這樣做。

相關問題