您好,登錄后才能下訂單哦!
目錄
規范背景與目的
2.1 數據庫設計
2.1.1 庫名
2.1.2 表結構
2.1.3 列數據類型優化
2.1.4 索引設計
2.1.5 分庫分表、分區表
2.1.6 字符集
2.1.7 程序DAO層設計建議
2.1.8 一個規范的建表語句示例
2.2 SQL編寫
2.2.1 DML語句
2.2.2 多表連接
2.2.3 事務
2.2.4 排序和分組
2.2.5 線上禁止使用的SQL語句
1. 規范背景與目的
MySQL數據庫與 Oracle、 SQL Server 等數據庫相比,有其內核上的優勢與劣勢。我們在使用MySQL數據庫的時候需要遵循一定規范,揚長避短。本規范旨在幫助或指導RD、QA、OP等技術人員做出適合線上業務的數據庫設計。在數據庫變更和處理流程、數據庫表設計、SQL編寫等方面予以規范,從而為公司業務系統穩定、健康地運行提供保障。
2.1 數據庫設計
以下所有規范會按照【高危】、【強制】、【建議】三個級別進行標注,遵守優先級從高到低。
對于不滿足【高危】和【強制】兩個級別的設計,DBA會強制打回要求修改。
2.1.1 庫名
2.1.2 表結構
2.1.3 列數據類型優化
詳細存儲大小參加下圖:*
2.1.4 索引設計
2.1.5 分庫分表、分區表
2.1.6 字符集
2.1.7 程序層DAO設計建議
2.1.8 一個規范的建表語句示例
一個較為規范的建表語句為:
CREATE TABLE user (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`user_id` bigint(11) NOT NULL COMMENT ‘用戶id’
`username` varchar(45) NOT NULL COMMENT '真實姓名',
`email` varchar(30) NOT NULL COMMENT ‘用戶郵箱’,
`nickname` varchar(45) NOT NULL COMMENT '昵稱',
`avatar` int(11) NOT NULL COMMENT '頭像',
`birthday` date NOT NULL COMMENT '生日',
`sex` tinyint(4) DEFAULT '0' COMMENT '性別',
`short_introduce` varchar(150) DEFAULT NULL COMMENT '一句話介紹自己,最多50個漢字',
`user_resume` varchar(300) NOT NULL COMMENT '用戶提交的簡歷存放地址',
`user_register_ip` int NOT NULL COMMENT ‘用戶注冊時的源ip’,
`create_time` timestamp NOT NULL COMMENT ‘用戶記錄創建的時間’,
`update_time` timestamp NOT NULL COMMENT ‘用戶資料修改的時間’,
`user_review_status` tinyint NOT NULL COMMENT ‘用戶資料審核狀態,1為通過,2為審核中,3為未通過,4為還未提交審核’,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_user_id` (`user_id`),
KEY `idx_username`(`username`),
KEY `idx_create_time`(`create_time`,`user_review_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='網站用戶基本信息';
2.2.1 DML語句
2.2.2 多表連接
2.2.3 事務
2.2.4 排序和分組
2.2.5 線上禁止使用的SQL語句
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。