# 最佳实践

**以下建议，如无必要，请尽量遵守，因为这样可以让你的代码与框架的设计理念更加契合，提高开发效率**

--- 



### 1. 数据库设计

~~1. 对于枚举型字段，其表现值方式尽量从1开始，且避开0 ，因为在sa-plus生成的查询代码中，**0代表不限条件**~~(v1.21.0版本起已放弃此条规则)


``` mysql
-- 正例
`status` int(11) DEFAULT '1' COMMENT '商品状态 (1=上架, 2=下架, 3=已删除) [j]',		-- 从1开始，依次递增

-- 反例
`status` int(11) DEFAULT '1' COMMENT '商品状态 (1=上架, 0=下架) [j]',		-- 用到了0，会在查询列表时造成bug 

```


2. 每一个表都应该包含一个`id`列作为主键


### 2. 后端代码 

1. `Controller` 接口返回值一律用 `AjaxJson.java` 类型 
<br/> 改用其它类型会造成全局日志类型转换错误，造成不必要的麻烦 

