阿里的MySQL建表規范,居然只有10條
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
很多公司有很厚一本的MySQL規范,規范內容越多,越難落地執行。 阿里的MySQL建表強制規范只有10條,大伙可以參考借鑒。 畫外音,另外: 索引強制規范有4條,SQL強制規范有9條; 建議規范與參考規范若干。 1. 表達是否概念的字段,必須使用is_xxx的形式命名; 2. 數據類型必須是 unsigned tinyint; 3. 1表示是,0表示否; 舉例:是否刪除 正確:使用is_deleted,1表示刪除,0表示未刪除 錯誤:deleted, if_deleted, delete_or_not 1. 表名,字段名禁止出現大寫; 畫外音:MySQL在Windows下不區分大小寫,Linux下雖然區分,但為了避免節外生枝,統一禁止大寫。 2. 禁止數字開頭,禁止兩個下劃線中間只有數字; 舉例: 正確:aliyun_admin,level3_name 錯誤:AliyunAdmin,level_3_name 表名表示實體內容,不是實體數量,禁止使用復數。 常見的例如:desc,range,match,delayed... 1. 主鍵索引名:pk_xxx 畫外音:primary key 2. 唯一索引名:uk_xxx 畫外音:unique key 3. 普通索引名:idx_xxx 畫外音:index 1. 小數類型使用decimal; 2. 禁止使用float和double; 畫外音:float和double存在精度損失,比較的時候,可能得到意想不到的結果。 3. 如果范圍超過decimal,可以拆成整數與小數分開存儲; 畫外音:預先分配存儲空間,不會觸發重新分配。 1. 如果字符串長度較長,且內容長度差異較大,使用varchar; 畫外音:不預先分配存儲空間,比較節省空間。 2. 如果字符串長度大部分超過5000,使用text,獨立出一張表單獨存儲; 畫外音:避免影響主表其他字段索引效率。 規范九:強制字段 1. 必須具備id字段:類型為bigint unsigned,單表時自增,步長為1,不具備業務含義; 2. 必須具備create_time字段:類型為datetime(除非記錄時區信息,使用timestamp); 3. 必須具備update_time字段:同上; 畫外音:邏輯操作保留了數據資產的同時,能夠追溯操作行為。 貴司有MySQL規范嗎?你覺得他們的建表規范合理嗎? 該文章在 2024/8/2 18:33:15 編輯過 |
關鍵字查詢
相關文章
正在查詢... |