FDP支持的数据库是:Oracle10G及以上、Mysql 5.6数据库及以上。

建表规约

  1. 每张表要建有一个主键列,表必须有主键(多对多中间表也建议有主键,为发更好的配合FDP)。
  2. 每张表要建一个对应的序列(oralce库专有)

命名规则

  1. 表名:同一个业务模块表,要使用统一的表名前缀,如系统模块下的表命名为sys_user、sys_menu,在数据库查看表时同模块的表会挨在一起方便查看;
  2. 字段名:小写,单词间用_分隔,如create_date;
  3. 主键列,命名规则:
    1. 不建议用"id"做为列名,因为意思表达不完全,当多表关联时众多的“id”会混乱。用户表的主键应叫u_id,产品表的主键应叫p_id,图片表的主键应中pic_id,大家要工作也好交流;
    2. 一些非核心表的主建也可使用id做为列名, purchase_item_id  这样的主键列名长度太长了,开发不方便;
    3. 示例:id \ p_id \ u_id \ user_id ;
  4. 序列,命名规则:表名_seq  (oralce库专有);
  5. 索引,命名规则:index_表名_字段名;

约束

  1. 为表的字段加上适当的约束:主键约束、非空约束、唯一约束;
  2. 为表的字段加上默认值:日期字段加当前时间为默认值,状态字段加默认值;
  3. 注意:表的外键字段上不建立外键约束,外键字段上应建立索引,表上不建立外建约束,但实际有外健关系。;

表的基础字段

每张表建议有以下字段(就算没有,程序也可正常运行),配合FDP程序会自动写入本行记录的创建时间与更新时间。

  1. 创建者 create_by,一般开发企业管理系统建议有本字段;
  2. 创建日期  create_date,强列建议有本字段;
  3. 更新者 update_by,一般开发企业管理系统建议有本字段;
  4. 更新日期  update_date,强列建议有本字段;
  5. 删除标记  del_flag,用于实现逻辑删除,请根据你的业务情况来决定;
  6. 备注信息 remarks

关于复合主键

由于FDP不支持复合主键,所以建议在设计表请避免在表上设计复合主键。

FDP内置了一批通用的表操作方法,如selectById,deleteById,都是按单一主键设计的。

索引的建议

  1. where条件里的列。
  2. 频繁进行排序或分组的列。
  3. 频繁使用distinct查询的列。
  4. 多表关联查询时,进行表连接的列。(join的列需字段类型相同,表的字符集也需相同)
  5. 当sql语句返回的行数占整张表总行数<=5%,适合使用索引。