1樓:匿名使用者
1:當資料表插入資料後,不需維護(例如:更新)或者需維護的概率較少時,允許適當的冗餘來提高查詢效率2:
若要儲存歷史記錄(例如:某個專案審批前由a科室負責,審批後由b負責,為了查詢專案是哪個科室負責的,就需要把科室編號或者名稱作為冗餘資料)3:為避免多表的連線而導致降低查詢效率和提高邏輯複雜性的問題,允許適當的資料冗餘(請按實際情況考慮)
冗餘欄位的使用在多表聯合查詢都是大資料量的表的情況下,確實是個不錯的選擇,有效的減少了io操作。但結合已有的專案產品來看,冗餘字段確實是雙刃劍。尤其是大專案的開發,如果忽略某個表的冗餘欄位的更新,那麼後果是災難性的。
如何有效的管理冗餘欄位是開發組內必須解決的問題。我的解決方案是:使用專門的表來管理冗餘字段。
例如article表有以下冗餘字段 fromusername,tousername 如何管理這兩個欄位呢?通過建立乙個表,表結構如下 id,objtable,objname,sourcetable, sourceid,level,isupdate 其中objtable=目標表,objname= 目標字段,sourcetable=源表,sourceid=源表id,level=是否需要立即更新,isupdate=是否已更新 其中,level欄位很有必要,有些冗餘字段並不需要在源表修改後立即更新,那麼可以通過乙個定期更新策略來更新。 通過庫表的管理,配合乙個合理的儲存過程,冗餘欄位的使用將不再是難題。
考試通 舉例,如果上面兩個字段發生變化,則使用觸發器或者呼叫這個儲存過程來檢查是否有需要立即更新的冗餘字段,需要則立即更新,不需要則isupdate置0,等到週期性的策略來更新同時isupdate=1。注:很多時候,資料冗餘是資源浪費、資料不一致的根源,同時資料冗餘付出代價是很高的(特別是更新資料的時候)
2樓:匿名使用者
嚴格按照資料庫設計幾大正規化做就行了,但為了效能,一定的資料冗餘是可以容忍的
如何清除sql資料庫中的資料,如何清除SQL資料庫中的資料?
sunshine懂你 單擊開始 所有程式 microsoft sql server 2014,選擇sql server 2014 management studio選項,開啟軟體。2.連線到伺服器視窗中,輸入伺服器名稱,選擇sql server身份驗證,輸入登入名和密碼,連線進入資料庫。3.在左側物...
求刪除SQL資料庫中某個表的重複資料
1.先將umane用乙個臨時表存起來 select distinct uname uname into aform users 2.刪除users表內的資料 delete from users 3.把臨時表使用者加到users表中,並將預設upwd全設為1234要看你upwd是什麼資料型別 如果是數...
access資料庫中怎麼引用查詢的sql語句
access本身可以建好一個完整的查詢的,可基於單表,可以基於多個表。建好後,點查詢設計中sql檢視,就是一個完整的sql語名了,而不用一個詞一個詞的寫,再追加寫where語句,已經全部搞定了,你試試看。 select from 表1 where 欄位1 in select 欄位2 from 表2 ...