阿里巴巴Java开发手册:MySQL数据库设计规约解析
需积分: 50 65 浏览量
更新于2024-08-07
收藏 1.01MB PDF 举报
"MySQL数据库设计规范和Java开发规约"
在MySQL数据库设计方面,有以下重要的规约和注意事项:
1. **建表规约**:
- **表达是与否的字段** 应使用 `is_xxx` 命名,如 `is_deleted`,并使用 `unsigned tinyint` 数据类型,1表示是,0表示否。
- **表名和字段名** 应全部使用小写字母,禁止数字开头,避免两个下划线中间只出现数字。在Linux环境下,MySQL是区分大小写的,因此应避免使用大写字母。
- **表名不应使用复数名词**,表名应表示实体内容,而非数量,与DO类名保持一致。
- **禁用保留字**,避免使用MySQL的保留字作为字段名,例如 `desc`, `range`, `match`, `delayed` 等。
- **索引命名** 遵循 `pk_字段名`(主键)、`uk_字段名`(唯一索引)和 `idx_字段名`(普通索引)的规则。
- **小数类型** 应使用 `decimal`,避免 `float` 和 `double` 的精度问题。
- **存储字符串** 若长度几乎相等,推荐使用 `char` 类型。
- **长字符串** 长度超过5000的字符串应使用 `text` 类型,并独立成表,通过主键关联,避免影响其他字段的索引效率。
- **必备字段** 每张表应包含 `id`(主键,unsigned bigint,自增,步长1),`gmt_create`(创建时间,date_time类型),`gmt_modified`(修改时间,date_time类型)。
在Java开发方面,遵循《阿里巴巴Java开发手册》的规约:
1. **命名风格**:
- 规约强调了清晰、统一的命名规范,如类名首字母大写,方法名首字母小写,常量全大写,变量名首字母小写等。
2. **常量定义**:
- 常量名使用全大写,单词间用下划线分隔,例如 `MAX_SIZE`。
3. **代码格式**:
- 包含代码缩进、空格使用、换行规则等,保持代码整洁,提高阅读性。
4. **OOP规约**:
- 关注面向对象设计原则,如单一职责、开闭原则、依赖倒置等。
5. **集合处理**:
- 推崇正确使用集合类型,避免不必要的类型转换,注意集合初始化大小。
6. **并发处理**:
- 强调线程安全和同步控制,合理使用锁,避免死锁和活锁。
7. **控制语句**:
- 控制语句的使用应简洁明了,避免复杂的嵌套结构。
8. **注释规约**:
- 注释要清晰,提供必要说明,但不过多,避免冗余。
9. **其它**:
- 包括异常处理、日志记录、单元测试等方面的规范,确保代码健壮性和可维护性。
这些规约旨在提高代码质量和团队协作效率,避免因个人习惯差异导致的问题。此外,阿里巴巴提供了Java开发规约插件,通过工具自动化检查代码规约遵守情况,以进一步提升代码质量。同时,《阿里巴巴Java开发手册详解》的出版,为开发者提供了更详尽的指导。
130 浏览量
287 浏览量
点击了解资源详情
239 浏览量
160 浏览量
2953 浏览量
2020-09-08 上传
杨_明
- 粉丝: 80
- 资源: 3862
最新资源
- EconomyAPI:基于配置存储的经济方法
- nest-status-monitor:基于Socket.io和Chart.js的简单,自托管模块,用于报告基于Nest的节点服务器的实时服务器指标
- Softimage dotXSI xchange for Max-开源
- leetCode:leetCode实践
- ecommerce
- mobile-logstash-encoder:占位符描述:@markrichardsg通过回购生成
- 56G_112G_PAM4系列之玻纤效应.rar
- GCD_Course_Project:提交我的获取和清理数据课程的课程项目
- springboot_service:Spring Boot安全性
- docker-traefik-prometheus:一个用于使用Promethues和Grafana监视Traefik的Docker Swarm堆栈
- 网状 Meta 分析实用教程(下).rar
- Network_data_复杂网络仿真_复杂网络数据_复杂网络_
- advance-CV
- nuxeo-course-browser
- artysite:主要个人网站
- Dev-Cpp_5.11_TDM-GCC_4.9.2_Setup.zip