這篇文章主要介紹“MySQL數(shù)據(jù)庫表的設(shè)計(jì)規(guī)范”,在日常操作中,相信很多人在MySQL數(shù)據(jù)庫表的設(shè)計(jì)規(guī)范問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL數(shù)據(jù)庫表的設(shè)計(jì)規(guī)范”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、洪江管理區(qū)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為洪江管理區(qū)等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1、一般都使用 INNODB 存儲引擎,除非讀寫比率<1%,才考慮使用 MYISAM 存儲引擎;其 他存儲引擎請?jiān)?DBA 的建議下使用。
2、Stored procedure (包括存儲過程,函數(shù),觸發(fā)器)對于 MYSQL 來說還不是很成熟, 沒有完善的出錯(cuò)記錄處理,不建議使用。
3、UUID(),USER()這樣的MySQL INSIDE 函數(shù)對于復(fù)制來說是很危險(xiǎn)的,會導(dǎo)致主備數(shù)據(jù)不一致,所以請不要使用。如果一定要使用UUID作為主鍵,讓應(yīng)用程序來產(chǎn)生。
4、請不要使用外鍵約束,如果數(shù)據(jù)存在外鍵關(guān)系,請?jiān)诔绦驅(qū)用鎸?shí)現(xiàn)。
5、必須采用 UTF8 編碼。
a)在設(shè)計(jì)時(shí)盡量包含兩個(gè)日期字段:crt_time(創(chuàng)建日期),upd_time(修改日期)且 非空, 對表的記錄進(jìn)行更新的時(shí)候,必須包含對 upd_time字段的更新。
b)必須要有主鍵,主鍵盡量用自增字段類型,推薦類型為INT或者BIGINT類型。
c)需要多表join的字段,數(shù)據(jù)類型保持絕對一致。
d)Mysql 的表盡量設(shè)置成 KV(Key-Value)結(jié)構(gòu),這樣便于擴(kuò)展和維護(hù)。
e)當(dāng)表的字段數(shù)非常多時(shí),可以將表分成兩張表,一張作為條件查詢表,一張作為詳細(xì)內(nèi)容表(主要是為了性能考慮)。
f)當(dāng)字段的類型為枚舉型或布爾型時(shí),建議使用 char(1)類型。
g)同一表中,所有varchar字段的長度加起來,不能大于65535.如果有這樣的需求,請使用 TEXT/LONGTEXT 類型。
h)由于MYSQL表DDL維護(hù)成本很高,所以在適當(dāng)?shù)臅r(shí)候,可以有一定的字段容余。 比如:Value1,Value2,Value3 這樣的字段。
命名
a)同一個(gè)模塊的表盡可能使用相同的前綴,表名盡可能表達(dá)含義,例如: CRM_SAL_FUND_ITEM。
b)字段命名應(yīng)盡可能使用表達(dá)實(shí)際含義的英文單詞或縮寫, 如,公司 ID,不要使用:corporation_id, 而用:corp_id 即可。
c)布爾值類型的字段命名為is+描述。如member表上表示是否為enabled的會員的字 段命名為 IsEnabled。
命名
a) _ind,各部分以下劃線()分割。
b) 多單詞組成的columnname,取前幾個(gè)單詞首字母,加末單詞組成column_name。如: sample 表 member_id 上的索引:sample_mid_ind。
設(shè)計(jì)
a) 主鍵最好是無意義的,由Sequence產(chǎn)生的ID字段,類型為number,不建議使用組合主鍵。
b) 若要達(dá)到唯一性限制的效果,不要?jiǎng)?chuàng)建uniqueindex,必須顯式創(chuàng)建普通索引和約束 (pk 或 uk),即先創(chuàng)建一個(gè)以約束名命名的普通索引,然后創(chuàng)建一個(gè)約束,用 using index …指定索引。
c) 當(dāng)刪除約束的時(shí)候,為了確保不影響到 index,最好加上 keep index 參數(shù)。
d) 主鍵的內(nèi)容不能被修改。
e) 外鍵約束一般不在數(shù)據(jù)庫上創(chuàng)建,只表達(dá)一個(gè)邏輯的概念,由程序控制。
f) 當(dāng)萬不得已必須使用外健的話,必須在外健列創(chuàng)建 INDEX。
命名
a) 主鍵約束: pk 結(jié)尾,_pk;
b) unique 約束:_uk 結(jié)尾,uk;
c) check 約束: _ck 結(jié)尾,ck;
d) 外鍵約束: _fk 結(jié)尾,以 pri 連接本表與主表,_pri_fk;
到此,關(guān)于“MySQL數(shù)據(jù)庫表的設(shè)計(jì)規(guī)范”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
名稱欄目:MySQL數(shù)據(jù)庫表的設(shè)計(jì)規(guī)范
當(dāng)前網(wǎng)址:http://aaarwkj.com/article36/ipdepg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、App開發(fā)、網(wǎng)站營銷、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)