前些天小编所在的组织部重构,组长交给小编一项设计实体的活儿,它是我们软件灵魂(数据)的载体,实体的抽象影响到数据库设计,数据库设计的质量影响到整个程序的运营,下面是我设计的实体关系图:
![](https://box.kancloud.cn/2016-03-07_56dcf072e56eb.jpg)
## 系统核心业务逻辑
1、导入基础信息
2、设置考核对象
3、设置定量指标以及权重
4、设置定性指标,对应的档次和权重
5、设置定量定性指标的整体权重
6、录入定量、定性、附加分成绩,将(考核对象、指标、成绩进行绑定)
7、将对应的成绩进行计算并汇总
## 实体概念
实体:客观存在并可相互区别的事物称之为实体,实体可以是具体的人、事、物,也可以是抽象的概念或联系。
## 实体设计步骤
1、根据需求,将客观存在的实体先画出来
2、建立各实体之间的关系(1对1、1对多、多对多)
3、将公共属性放到一个新实体中进行维护(如上图的字典实体)
## 遗留问题
使用ITOO底层的框架(封装好的增删改查)如果每个表中没有冗余字段,那么在得分汇总的时候,进行数据匹配,指标表和成绩表匹配,再和对象表匹配,再和基础表匹配,那么数据量将上5位数,系统的性能如何提高?
系统对数据采用硬删除的方式,通过主外键关联可以将从表中对应的关联删除掉,系统对数据采用软删除的方式,如果是三个表甚至是更多的表有主外键关联,如何快速高效的删除从表中的关联数据?
## 总结
这个图只是一个实体的关系图,在建立表的过程中还是需要根据具体的业务需要,再具体确定表中的属性,有时候可以通过增加增加冗余字段来降低查询计算逻辑。
在设计实体的过程给自己最大的感觉就是对系统业务逻辑认识的提升,相信有了这个实体图,心中将会有一个宏观的图的认识,逻辑将会更加清楚,因为业务的需要,里面实体间的关系也经过了反复思考并且和师哥在一起交流总结,感觉收获多多。
真正做好,做大一个系统需要从更加长远的角度去考虑,瞬间感觉任重而道远啊,加油了O(∩_∩)O~