>[info]## 數據庫設計
一般都使用 INNODB 存儲引擎,除非讀寫比率 < 1%, 才考慮使用 MYISAM 存儲引擎;其他存儲引擎請在 DBA 的建議下使用。
Stored procedure (包括存儲過程,函數,觸發器) 對于 MYSQL 來說還不是很成熟, 沒有完善的出錯記錄處理,不建議使用。
UUID (),USER () 這樣的 MySQL INSIDE 函數對于復制來說是很危險的,會導致主備數據不一致,所以請不要使用。如果一定要使用 UUID 作為主鍵,讓應用程序來產生。
不要使用外鍵約束,如果數據存在外鍵關系,請在程序層面實現。
采用 UTF8 編碼。
>[success]## 設計目的思考
* 節省內存空間
* 保證數據庫的完整性
* 方便我們開發系統
* 最大的發揮系統能力
***
<br>
```
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='網站用戶基本信息';
```
- 序言
- 為什么要編碼規范?
- 如何進行編碼規范?
- 編碼規范宏觀微觀細節
- PHP編碼規范
- 基礎規范
- 1 語法規范
- 2 變量命名規范
- 3 常量命名規范
- 4 類命名規范
- 5 函數命名規范
- 6 方法命名規范
- PSR-規范
- 基本代碼規范
- Tp項目規范
- TP命名規范
- Tp目錄規范
- Tp基礎目錄構架
- Tp項目開發思考
- Tp控制器規范
- 控制器構架
- Tp模型規范
- 模型性能優化
- Tp業務規范
- 返回結構規范
- 業務異常規范
- Tp輸出規范
- Restful API
- 模板渲染輸出
- Tp異常規范
- 異常碼狀態碼
- 異常輸出方式
- Tp驗證規范
- Tp路由規范
- Tp加密規范
- Password Hashing
- Tp緩存規范
- 常見數據緩存
- 緩存設計思考
- Tp日志規范
- 日志信息
- 日志分析
- Tp日志接管分析
- Tp性能優化
- vendor包規范
- 項目自動化思考
- 項目檢測告警思考
- 項目注釋規范
- Mysql設計規范
- 序言
- 命名規范
- 表及字段規范
- 索引規范
- 索引原理
- Sql規范
- 事務規范
- 讀寫分離
- 樂觀鎖悲觀鎖
- 數據庫審計
- 性能優化
- 查詢優化神器
- 慢查詢優化步驟
- 分庫分表、分區表
- 根據sql日志篩選數據
- 設計原則
- MongoDB規范
- MongoDB基礎
- MongoDB設計
- MongoDB安全性
- MongoDB備份
- 操作手冊規范
- API文檔說明規范
- 管理端操作手冊
- 用戶使用說明書
- 溯源項目構想