數據庫的冗余字段


1冗余字段的定義

冗余字段是指反復出現的,重復的字段。也就是說在數據庫中如果表a出現過字段b,表c再出現字段b,那么字段b就可以被看作是冗余字段了。

2冗余字段的弊端

如果參照三范式,那我們在設計數據庫的時候就必須致力於消滅冗余字段,畢竟如果我們需要更新某條記錄,而這條記錄又恰好包含了冗余字段,那么我就必須更新所有攜有冗余字段的表。如果冗余冗余字段只出現在很少的表中那么這不算什么大問題。但是如果有很多很多張表都攜有冗余字段,不僅會使數據庫性能降低還會帶來數據不一致等一系列問題。所以,我們目前所接觸的經典教材都在強調三范式還是很有道理的。

3冗余字段的用處

冗余字段確實有很大地弊端,這是否說明我們就該將之視為洪水猛獸,棄而不用呢?大可不必。舉個例子來說表a有三個字段:員工號,員工姓名,員工出生日期;表b有三個字段員工號,員工工資,員工工齡;這樣的設計符合三范式。但是我們發現當我們查詢員工工齡的時候不僅僅需要知道員工號,還需要知道員工姓名。這個時候我們需要使用join語句或者使用視圖來獲取員工工齡和員工姓名。當數據只有百條,千條時這樣設計並沒有什么問題,但當數據庫中有幾萬條數據時再使用join語句就未必是個好方法了。這時候如果在表b中增加一個姓名的冗余字段就能提升數據庫的性能。

4冗余字段的使用原則

冗余字段不是妖魔鬼怪。在像我這樣的菜鳥眼中它可能像一頭獅子一樣凶猛可怕,但在高手面前,它卻會像小貓一樣乖巧可愛。想要成為高手,就必須學會駕馭雄獅,而想要駕馭雄獅就必須去了解它。下面來討論一下冗余字段的使用原則。

a不隨便使用冗余字段。

b只在關鍵數據上使用冗余字段

c根據業務需求決定是否使用冗余字段

d查詢多更新少  加冗余


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM