關於資料庫冗餘字段設計的利與弊

2021-10-03 23:02:47 字數 865 閱讀 1499

因為近期完全是我負責某專案開發,所以關於資料庫冗餘欄位的設計,有了一些新的見解。

其實在資料庫設計方面,對於冗餘欄位的設計,網上也是褒貶不一的。通過資料的查詢,大致有以下兩個方向:

1、支援冗餘欄位的設計

引入冗餘欄位的設計,能夠減少表關聯,使用sql查詢的時候執行效率更快,特別是在資料量比較大的情況下。

2、否定冗餘欄位的設計

主要是違反了資料庫三正規化的,資料庫設計看著不那麼賞心悅目。

本人本著好看不如好用的思想,採納了第一種,引入了部分冗餘字段作為嘗試,下面是我實際專案中遇到的真實尷尬情況。

1、運用冗餘字段儲存主表的資訊,遇見主表資料更新,帶冗餘欄位的錶該怎麼辦?

例如:客戶產品訂購表,想不關聯客戶表查詢客戶名稱,因此把客戶名稱存入產品訂購表的冗餘字段,當這個客戶名稱修改的時候,難道還要同步更新這張表麼。如果客戶名稱並不是指冗餘在這一張表,還有其他n張表都設計為客戶名稱為冗餘字段,那麼這個問題就比較嚴重了。

個人總結:冗餘欄位的設計還是盡量選取一些幾乎不會發生修改的字段,以免造成尷尬情景。

2、使用冗餘欄位是真的為了查詢速度嗎?

本人使用冗餘欄位的原因,高效的執行效率只是其中一點,最主要的是為了單錶查詢(主要還是懶啊)。所以,引入冗餘字段確實得慎重,不要為了節省那幾行**的時間,留下這麼大的隱患。

2020.4.2

今天突然想起,有種情況一定要用冗餘字段。舉個例子:你昨天買了個手機,那麼交易記錄表裡面就會新增一條記錄,資料庫裡的記錄可能是這樣的,id、購買人、商品編號、購物時間...,類似於這種情況,就應該加個商品名稱的字段,否則第二天就把商品編號對應的物品調整成了雞蛋,客戶在查詢的時候,就會發現自己花了幾千塊買了個雞蛋。。。

以上只是舉個例子,當然實際情況交易記錄表肯定不是這麼去設計的。

資料庫冗餘的利與弊?

資料庫冗餘 儲存兩倍資料,冗餘可以使系統速度更快。減少聯查 個人理解 在設計資料庫時,某一字段屬於乙個表,但它又同時出現在另乙個或多個表,且完全等同於它在其本來所屬表的意義表示,那麼這個字段就是乙個冗餘字段。至於冗餘欄位的存在到底是好還是壞呢?這是乙個不好說的問題。可能在有人看來,這是乙個很蹩腳的資...

資料庫冗餘字段設計作用

在設計資料庫時,某一字段屬於乙個表,但它又同時出現在另乙個或多個表,且完全等同於它在其本來所屬表的意義表示,那麼這個字段就是乙個冗餘字段,外來鍵除外 以上是我自己給出的定義 冗餘欄位的存在到底是好還是壞呢?這是乙個不好說的問題。可能在有人看來,這是乙個很蹩腳的資料庫設計。因為在資料庫設計領域,有乙個...

資料庫冗餘字段設計作用

在設計資料庫時,某一字段屬於乙個表,但它又同時出現在另乙個或多個表,且完全等同於它在其本來所屬表的意義表示,那麼這個字段就是乙個冗餘字段。冗餘欄位的存在到底是好還是壞呢?這是乙個不好說的問題。可能在有人看來,這是乙個很蹩腳的資料庫設計。因為在資料庫設計領域,有乙個被大家必須遵守的資料庫設計正規化,這...