在当今的企业级应用开发中,实体设计基本上还是处于核心的位置上,因此对实体设计的质量相当重要的,而要保证实体设计质量,必须明确不同的实体类型和其功能。
本文简单的总结一下实体的分类和相关的设计方法,供大家参考。
实体主要分为基本对象的实体,基于行为的实体,基于关系的实体,基于常量的实体,基于算法的实体,基于状态的实体,基于备份的实体,还有基表等。当然还有以上集中的复合体。
基于对象的实体:类似于名词,表示世界的事物,比如人,太阳等,一般以事物本身的id为主键。
这些实体需要设计相关的属性,比如名字,年龄等。这些实体一般和基于常量的实体,和基于关系的实体有关联关系。
一般也是基于行为的实体的操作对象,操作者等。
基于行为的实体:主要记录针对事物的操作行为,一般以流水作为主键,表现形式是日志表。
这些实体需要设计的属性,包含操作人,操作时间,操作内容,操作对象等类似于记叙文,要把行为的要素都记录清楚。
涉及对象实体时,有时需要进行记录对象的信息,也就是冗余信息。
基于关系的实体:描述对象之间的关系,或者行为的关系,一般是由联合主键构成主键。设计这种实体主要满足多对多关系的需要,或者将变化点抽取出来单独处理。
基于常量的实体:一般作为代码表存在,类似java中的final参数。
基于算法的实体:主要作为复杂的算法的数据存储结构存在,如树形算法等。
基于状态的实体:类似对象的状态变更图,当然可以和对象实体合并到一起,为了跟踪对象状态的变化,如审批状态,可以单独独立出来。
基于备份的实体:对于关键的操作,一般情况下需要进行备份记录。
基表:类似于java的基类,存放各子类的公共信息,不过在实体设计中是以关联体现的,比如员工实体(基表),经理(子表),工程师(子表)等。
以上概况的比较粗略,不一定正确,欢迎大家指点。