====== 设计原则 ====== * 数据库层控制全局约束。主键;唯一键;外键 * 程序DO层控制每行的每个字段约束。是否为空,默认值,是否满足业务规则等 ====== DO层设计原则 ====== 对于每个字段要严格控制,每个DO要有一个builder去校验 * 是否允许为空??? * 是否有默认值,默认值是什么??? * 是否是枚举类型,有哪些枚举值??? * 每个字段的内容需要符合哪些格式才是合法的 * 比如:一个字段的长度有限制 * 比如:必须是驼峰格式 * 比如:一个json字段,可能是 null, "", " ", "{}", {}, {"a":"}, {"a":"b"}。如此多的形式,必须要限制。要么为null, 要么就是有意义的{"a":"b"}