以下幾條經驗是我在幾年工作中總結出來的,而且現在工作中一直在使用的原則
1.減少關聯查詢的表數量,控制在3個以內
2.表設計時能冗餘就冗餘,資料的一致性靠業務邏輯去控制
3.忘掉外來鍵,不要依靠底層db給你檢查資料的不一致,同上(忘掉書本裡的那些概念吧,聽起來有些叛逆~)
4.查詢語句中盡量不用in,not,left join,right join
5.資料庫字段設計盡量設計成非空的,便於作索引
6.對於查詢條件用到的字段,對其作索引
7.查詢條件中,盡量避免用like,盡量使用等值查詢
8.為每個表設定乙個預設主鍵,即使它沒有任何用處
9.為每個表設定乙個gmt_create,gmt_modified欄位,表示記錄的建立時間和最後修改時間(也可以再加乙個remark欄位)
10.對資料庫中的資料作軟刪除--設計表時增加乙個is_deleted欄位,當刪除時,修改該字段的值,不做物理刪除
11.欄位的長度設計盡量貼近實際
12.各個字段盡量設計成非空的,不要設定預設值
13.盡量使用標準的sql語句,便於遷移
14.所有的資料庫欄位和關鍵字大寫
15.sql語句要合理縮排,建議使用sqlplus之類的工具格式化
16.不要用select * ,而是乙個乙個的把要查詢的字段列舉出來--否則後期新增欄位是一種災難!
17.insert 後要把所有的字段依次列舉,防止後期字段順序變化或字段增刪
18.使用user_detail形式的命名規則--包括表名和欄位名
19.不要把錶欄位名設計為sql的關鍵字
20.資料庫表名,欄位名全部大寫(小寫)
21.欄位名表明採用gmt_create方式命名
資料庫設計的幾條最佳實踐
以下幾條經驗是我在幾年工作中總結出來的,而且現在工作中一直在使用的原則 1.減少關聯查詢的表數量,控制在3個以內 2.表設計時能冗餘就冗餘,資料的一致性靠業務邏輯去控制 3.忘掉外來鍵,不要依靠底層db給你檢查資料的不一致,同上 忘掉書本裡的那些概念吧,聽起來有些叛逆 4.查詢語句中盡量不用in,n...
資料庫設計的最佳實踐
資料庫設計的最佳實踐 1 使用定義明確的表或列名,並保持一致 例如,school studentcourse courseid 2 使用單數形式的表名 即,用studentcourse而非studentcourses 表代表了實體的合集,不需要複數形式。3 不要在表名中使用空格。否則你將在定義表時不...
SIEM部署的幾條最佳實踐
2010年11月12號,networkworld發表了一篇文章 siem部署的最佳實踐 業界同仁給出了他的一些建議。這些建議主要是針對verizon2010年的那個dbir報告 中提到的日誌缺失造成的嚴重問題。至於建議,主要有 1 先要搞明白你想要什麼?2 log everything 注 我並不贊...