Database Design Best Practice (2)

來源:互聯網
上載者:User

標題裡雖然是將Database Design的best practice, 但下面內容並不僅限於design階段的良好習慣。

1. Should binary files (such as word, pdf, image, video) be
stored in database?

(1) performance. 根據[2], blob
column並不是儲存在datarow中,datarow中只是包含了一個指向真正資料的指標,因此,效能並不會收到影響。

(2) full text search. 如果把word,
pdf等檔案存放在檔案系統中,有許多工具支援對這些文檔進行全文檢索搜尋,但是如果放在資料庫中,這種支援可能就沒這麼多了(利用PDF
 IFilter可以對資料庫裡的pdf進行FTS)。

(3) 從原則上講,資料庫裡面存放的應該是“資料”。而word,pdf則混雜了資料和格式。

(4) 如果把binary files存放在檔案系統上,而在資料庫中維護這些檔案的路徑,那麼程式中就要維護資料庫中檔案路徑和檔案系統上檔案的一致性。

2. insert語句中應該要寫清楚要插入的column的名字,否則當這張表的column發生變化時,這個語句就會不成立。

3資料庫設計的目標

(1) 最少的資料冗餘。normalization這個過程就是用來實現這個目標的,但要注意過度normalization的問題(在這種情況下,有時候執行一個比較簡單的查詢就要join好幾張表,sql語句比較複雜,這樣就得不償失了)因此有時候為了使資料庫關係簡單,應該允許redundancy的存在。這裡必須達成一個compromise。

(2) 佔用較小的空間。

(3) 預防錯誤發生的措施(foreign key, unique key等)。

 

Reference

[1]Best Practices in Database Design

http://www.interaktonline.com/Support/Articles/Details/Design+Your+Database-Best+Practices+in+Database+Design.html?id_art=24&id_asc=220

[2] http://www.aspcode.net/blogs/archive/2006/09/04/2.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.