一、數據庫表名的設計:
1、在命名表時,用名稱單數形式表示名稱。(表名應該僅僅是表示表里面的實體內容,不應該表示實體數量;它們是一份份沒有任何動作的,靜態的數據。)
例如,使用 Employee,而不是 Employees。
2、mysql在windows下不區分大小寫,但是linux下默認是區分大小寫。所以數據庫名、表名、字段名,
都不允許出現任何大寫字母,避免節外生枝。
3、相關聯的表采用相同的前綴,使得開發人員一眼看上去就知道哪幾個表是相關的。
4、如果表名由幾個單詞組成,則單詞間用下划線(“_”)分割,如subscribed_pois,poi_categories等
5、表名超過15個字符,字段超過20個字符,就應該使用縮寫;如果可以在字典里找到一個詞的縮寫,就用這個做為縮寫,
比如:Monday=Mon、December=Dec,可在此網站下查找到一些英文單詞的縮寫:http://shortof.com/;
二、數據庫字段設計:
1、字段名為小寫;
2、如果字段由幾個單詞組成,則單詞間用下划線(“_”)分割,如client_id,post_code等;
3、字段名稱超過30個字符,用縮寫表示;
4、禁用保留字,如 desc 、 range 、 match 、 delayed 等,請參考 MySQL 官方保留字;
5、表達是與否概念的字段,必須使用 is _ xxx 的方式命名,數據類型是 unsigned tinyint
( 1 表示是,0 表示否 ) 。
三、數據類型的選擇:
1、小數類型使用decimal,禁止使用float和double(float和double存在精度損失的問題);
2、如果存儲的字符串長度幾乎相等,使用char定長字符串類型;
3、varchar是可變長字符串,不預先分配存儲空間,長度不要超過5000,長度超過5000,定義字段類型為text,獨立出來一張表,用主鍵來對應,避免影響其它字段的索引效率;
參考:https://zhuanlan.zhihu.com/p/20785905?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io