数据库设计思考
一:沒有完美的數據庫設計,只有符合業務的數據庫設計!
二:我們的數據庫設計,在遵守標準(三大范式)的同時也要考慮客戶的體驗!
有用戶才有天下!
三:數據庫設計時必須要做的
?????????? 1.需求的分析;
???????????2.考慮需求可能的變更(預留設計);
四:數據庫設計中具體要注意的幾點;
?1.凡是用戶輸入的不能作為主鍵;
主鍵是唯一的,一般不能讓客戶做任何操作;
?2.凡是有業務意義的不能作為主鍵;
? ? ?既然是具有業務意義,客戶隨時都有可能提出這個業務,要求修改業務,也會有變動的可能!
3.除非確定是有必要的字段,其他都允許為空;
? ?設計數據庫時,約束簡單點最好,約束多則在系統中開發時要注意的就多,開發效率相對會底,因為系統是可以通過驗證輔助完成這些約束的!
4.不能缺少時間或日期字段、并預留備注字段;
5. 業務的時效(時間有效)性;
6.數據的采集寧濫毋缺??
7.預先計劃
比如考慮到用戶可能會誤操作,然后又要求維護人員恢復數據,需要對表進行軟刪除(邏輯刪除,也就是增加一個IS_DELETED字段,0表示正常,刪除操作就是將該字段設置為1)?
?
五:字段是否允許為空的思考
為空的選項,就是為了表示未知的情況。
如果為空,查詢條件就必須處理為空的情況,否則會出現一些很奇怪的問題。也就是說,幾乎所有的判斷都必須加上 is not null 或者時 ?is null 的判斷。?其實在部分情況下可以使用默認值。
六:Drop Table
? 要增加數據列的話,不好采用Drop Table重新Create Table,因為會把數據也刪除掉,最好用Alter語句。
alter table OrderMaster add IsMonthly int(11) not NULL DEFAULT 0;
alter table OrderSearchSummary add IsMonthly int(11) not NULL DEFAULT 0;
?
轉載于:https://www.cnblogs.com/peterYong/p/6556560.html
總結
- 上一篇: c语言中虚函数和纯虚函数,虚函数和纯虚函
- 下一篇: (笔记)Mysql命令drop data