冗餘欄位的使用在多表聯合查詢都是大資料量的表的情況下,確實是個不錯的選擇,有效的減少了io操作。但結合已有的專案產品來看,冗餘字段確實是雙刃劍。尤其是大專案的開發,如果忽略某個表的冗餘欄位的更新,那麼後果是災難性的。如何有效的管理冗餘欄位是開發組內必須解決的問題。我的解決方案是:使用專門的表來管理冗餘字段。例如article表有以下冗餘字段
fromusername,tousername
如何管理這兩個欄位呢?通過建立乙個表,表結構如下
id,objtable,objname,sourcetable, sourceid,level,isupdate
其中objtable=目標表,objname= 目標字段,sourcetable=源表,sourceid=源表id,level=是否需要立即更新,isupdate=是否已更新
其中,level欄位很有必要,有些冗餘字段並不需要在源表修改後立即更新,那麼可以通過乙個定期更新策略來更新。
通過庫表的管理,配合乙個合理的儲存過程,冗餘欄位的使用將不再是難題。
舉例,如果上面兩個字段發生變化,則使用觸發器或者呼叫這個儲存過程來檢查是否有需要立即更新的冗餘字段,需要則立即更新,不需要則isupdate置0,等到週期性的策略來更新同時isupdate=1。
細說 Azure Storage 的冗餘策略
當我們想要把應用搬到雲端的時候,首先要關注的便是資料的安全性。當然所有的雲服務廠商都會對使用者資料承諾乙個非常高的安全性,但萬一出現意外呢?我們是不是還要有適當的應對方案?比如今年的3月8日晚間,azure 某個區域中的儲存幾乎全部不能訪問,持續達兩個多小時。當時最擔心的是 使用者的資料萬一丟掉怎麼...
資料庫中的冗餘字段
在建庫的時候,尤其是複雜的資料庫,難免會出現大量的冗餘字段,出現資料冗餘 資料冗餘 在乙個資料集合中重複的資料稱為資料冗餘.資料冗餘的目的 資料的應用中為了某種目的採取資料冗餘方式。1 重複儲存或傳輸資料以防止資料的丟失。2 對資料進行冗餘性的編碼來防止資料的丟失 錯誤,並提供對錯誤資料進行反變換得...
資料庫中冗餘欄位的作用
按照第三正規化的要求,是不應該存在冗餘欄位的,但現在我改變了看法,認為冗餘字段非常有必要。例如 在訂單表中,客戶名稱 字段就是冗餘字段,加了這個字段,就需要在客戶資訊表修改 客戶名稱改變 的時候,多做乙個更新訂單表中 客戶名稱 欄位的動作。這樣做的理由是 1 訂單表的查詢速度會提高 一些相關的程式 ...