FDP支持的数据库是:Oracle10G及以上、Mysql 5.6数据库及以上。
建表规约
- 每张表要建有一个主键列,表必须有主键(多对多中间表也建议有主键,为发更好的配合FDP)。
- 每张表要建一个对应的序列(oralce库专有)
命名规则
- 表名:同一个业务模块表,要使用统一的表名前缀,如系统模块下的表命名为sys_user、sys_menu,在数据库查看表时同模块的表会挨在一起方便查看;
- 字段名:小写,单词间用_分隔,如create_date;
-
主键列,命名规则:
- 不建议用"id"做为列名,因为意思表达不完全,当多表关联时众多的“id”会混乱。用户表的主键应叫u_id,产品表的主键应叫p_id,图片表的主键应中pic_id,大家要工作也好交流;
- 一些非核心表的主建也可使用id做为列名, purchase_item_id 这样的主键列名长度太长了,开发不方便;
- 示例:id \ p_id \ u_id \ user_id ;
- 序列,命名规则:表名_seq (oralce库专有);
- 索引,命名规则:index_表名_字段名;
约束
- 为表的字段加上适当的约束:主键约束、非空约束、唯一约束;
- 为表的字段加上默认值:日期字段加当前时间为默认值,状态字段加默认值;
- 注意:表的外键字段上不建立外键约束,外键字段上应建立索引,表上不建立外建约束,但实际有外健关系。;
表的基础字段
每张表建议有以下字段(就算没有,程序也可正常运行),配合FDP程序会自动写入本行记录的创建时间与更新时间。
- 创建者 create_by,一般开发企业管理系统建议有本字段;
- 创建日期 create_date,强列建议有本字段;
- 更新者 update_by,一般开发企业管理系统建议有本字段;
- 更新日期 update_date,强列建议有本字段;
- 删除标记 del_flag,用于实现逻辑删除,请根据你的业务情况来决定;
- 备注信息 remarks
关于复合主键
由于FDP不支持复合主键,所以建议在设计表请避免在表上设计复合主键。
FDP内置了一批通用的表操作方法,如selectById,deleteById,都是按单一主键设计的。
索引的建议
- where条件里的列。
- 频繁进行排序或分组的列。
- 频繁使用distinct查询的列。
- 多表关联查询时,进行表连接的列。(join的列需字段类型相同,表的字符集也需相同)
- 当sql语句返回的行数占整张表总行数<=5%,适合使用索引。