您好,登錄后才能下訂單哦!
小編給大家分享一下MySQL數據庫表設計規范是怎么樣的,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1、一般都使用 INNODB 存儲引擎,除非讀寫比率<1%,才考慮使用 MYISAM 存儲引擎;其 他存儲引擎請在 DBA 的建議下使用。
2、Stored procedure (包括存儲過程,函數,觸發器)對于 MYSQL 來說還不是很成熟, 沒有完善的出錯記錄處理,不建議使用。
3、UUID(),USER()這樣的MySQL INSIDE 函數對于復制來說是很危險的,會導致主備數據不一致,所以請不要使用。如果一定要使用UUID作為主鍵,讓應用程序來產生。
4、請不要使用外鍵約束,如果數據存在外鍵關系,請在程序層面實現。
5、必須采用 UTF8 編碼。
a)在設計時盡量包含兩個日期字段:crt_time(創建日期),upd_time(修改日期)且 非空, 對表的記錄進行更新的時候,必須包含對 upd_time字段的更新。
b)必須要有主鍵,主鍵盡量用自增字段類型,推薦類型為INT或者BIGINT類型。
c)需要多表join的字段,數據類型保持絕對一致。
d)Mysql 的表盡量設置成 KV(Key-Value)結構,這樣便于擴展和維護。
e)當表的字段數非常多時,可以將表分成兩張表,一張作為條件查詢表,一張作為詳細內容表(主要是為了性能考慮)。
f)當字段的類型為枚舉型或布爾型時,建議使用 char(1)類型。
g)同一表中,所有varchar字段的長度加起來,不能大于65535.如果有這樣的需求,請使用 TEXT/LONGTEXT 類型。
h)由于MYSQL表DDL維護成本很高,所以在適當的時候,可以有一定的字段容余。 比如:Value1,Value2,Value3 這樣的字段。
命名
a)同一個模塊的表盡可能使用相同的前綴,表名盡可能表達含義,例如: CRM_SAL_FUND_ITEM。
b)字段命名應盡可能使用表達實際含義的英文單詞或縮寫, 如,公司 ID,不要使用:corporation_id, 而用:corp_id 即可。
c)布爾值類型的字段命名為is+描述。如member表上表示是否為enabled的會員的字 段命名為 IsEnabled。
命名
a) _ind,各部分以下劃線()分割。
b) 多單詞組成的columnname,取前幾個單詞首字母,加末單詞組成column_name。如: sample 表 member_id 上的索引:sample_mid_ind。
設計
a) 主鍵最好是無意義的,由Sequence產生的ID字段,類型為number,不建議使用組合主鍵。
b) 若要達到唯一性限制的效果,不要創建uniqueindex,必須顯式創建普通索引和約束 (pk 或 uk),即先創建一個以約束名命名的普通索引,然后創建一個約束,用 using index …指定索引。
c) 當刪除約束的時候,為了確保不影響到 index,最好加上 keep index 參數。
d) 主鍵的內容不能被修改。
e) 外鍵約束一般不在數據庫上創建,只表達一個邏輯的概念,由程序控制。
f) 當萬不得已必須使用外健的話,必須在外健列創建 INDEX。
命名
a) 主鍵約束: pk 結尾,_pk;
b) unique 約束:_uk 結尾,uk;
c) check 約束: _ck 結尾,ck;
d) 外鍵約束: _fk 結尾,以 pri 連接本表與主表,_pri_fk;
看完了這篇文章,相信你對“MySQL數據庫表設計規范是怎么樣的”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。