第十二章. 数据库设计
作者:胡小根
邮箱:hxgqh@haomo-studio.com
版本:0.1
设计总则
对于本项目中的数据库设计,需要遵循如下规则:
1. 系统默认的数据库,表和字段名称均为对应的英文名
2. 系统配置过程中新增的表和字段,名称均为其中文对应的全拼
3. 凡是在后台可以进行配置的内容,涉及到后台数据表的,均可以增删表格的字段。对于删除表格字段的操作,在对应表格字段存在任何数据的情况下,需要进行提醒。
新增业务场景数据库设计
新增业务场景的顺序流程如下:
1. 新增业务场景,例如项目报备
2. 指定业务场景的管理方式:流程管理或阶段管理。默认为阶段管理。
3. 根据管理方式不同,进行如下操作:
a. 若为阶段管理,需要设计阶段及每个阶段的事件
b. 若为流程管理,需要采用Activiti设计流程,并将流程跟表单挂钩
4. 自定义表:
a. 自定义主表字段:主表内包含多个section,每个section下面可以包含多个字段。这些section内的所有字段都包含到数据库中的一张表中。
b. 自定义明细表字段:明细表不包含section,每张明细表包含多个字段
5. 自定义字段,字段需要包含如下属性:
a. 字段名称
b. 字段类型
c. 字段状态(启用、禁用)
d. 必填、可选
e. 是否常用
f. 是否隐藏
g. 外链到哪张表的哪个字段(可选)
h. 外链字段
i. 是否可人工填写(这个建议删除,会引起巨大的沟通成本)
对于数据库中的自定义表和自定义字段,有如下功能:
1. 有一张单独的表,记录所有自定义表的属性
2. 有一张单独的字段,记录所有自定义字段的属性
业务场景应包括如下字段:
1. 场景名称。场景名称将影响前台CRM的二级菜单,长度不宜超过10个汉字。
2. 场景管理方式:阶段管理或流程管理,默认为阶段管理。
3. 场景描述:描述业务场景的相关信息
数据池概念设计(鸿合项目不做)
对于CRM里的所有二级菜单里的数据(包括客户、联系人、物料、新增业务场景等),均可以选择是否存在数据池的概念(可配置)。
数据池的命名规则为:二级菜单名称+池。例如,对于二级菜单客户,若配置为存在池的概念,则存在对应的“客户池”。同理其他的选项也是如此。
对于类似客户、联系人等数据,若一旦被某个用户创建,则自动存在了“所有人”,且其状态为“1: 正常”。这个“所有人”的只能存在一个!(需要沟通)
但是一定某条非池内数据被回收进入池内,则这条数据将满足以下规则:
1. 状态被设定为“0: 池”,客户的所有人的字段被清除;
2. 客户被池的管理员拥有;可以有多个管理员;
3. 所有的对应池内管理员,均可以对池内的数据进行分配;
4. 不区分池内管理员的权限,池内所有管理员均可以在前台看到所有池内数据,并能够对池内数据进行重新分配。
对于正常数据,数据所有人可以进行的操作如下:
操作类型1:放入数据池。有关退回:退回也可以是放入数据池?不需要区分退回和放入数据池。
对于正常数据,参与人可以进行的操作如下:
操作类型2:
对于数据池数据,管理员可以进行的操作如下:
对于数据池数据,销售人员可以进行的操作如下:
数据库技巧
支持Emoji
将字符集从utf8转换为AL32UTF8
参考资料: