论坛首页 综合技术论坛

实体分类和设计

浏览 2824 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-05  

在当今的企业级应用开发中,实体设计基本上还是处于核心的位置上,因此对实体设计的质量相当重要的,而要保证实体设计质量,必须明确不同的实体类型和其功能。

本文简单的总结一下实体的分类和相关的设计方法,供大家参考。

实体主要分为基本对象的实体,基于行为的实体,基于关系的实体,基于常量的实体,基于算法的实体,基于状态的实体,基于备份的实体,还有基表等。当然还有以上集中的复合体。

基于对象的实体:类似于名词,表示世界的事物,比如人,太阳等,一般以事物本身的id为主键。

这些实体需要设计相关的属性,比如名字,年龄等。这些实体一般和基于常量的实体,和基于关系的实体有关联关系。

一般也是基于行为的实体的操作对象,操作者等。

基于行为的实体:主要记录针对事物的操作行为,一般以流水作为主键,表现形式是日志表。

这些实体需要设计的属性,包含操作人,操作时间,操作内容,操作对象等类似于记叙文,要把行为的要素都记录清楚。

涉及对象实体时,有时需要进行记录对象的信息,也就是冗余信息。

基于关系的实体:描述对象之间的关系,或者行为的关系,一般是由联合主键构成主键。设计这种实体主要满足多对多关系的需要,或者将变化点抽取出来单独处理。

基于常量的实体:一般作为代码表存在,类似java中的final参数。

基于算法的实体:主要作为复杂的算法的数据存储结构存在,如树形算法等。

基于状态的实体:类似对象的状态变更图,当然可以和对象实体合并到一起,为了跟踪对象状态的变化,如审批状态,可以单独独立出来。

基于备份的实体:对于关键的操作,一般情况下需要进行备份记录。

基表:类似于java的基类,存放各子类的公共信息,不过在实体设计中是以关联体现的,比如员工实体(基表),经理(子表),工程师(子表)等。

以上概况的比较粗略,不一定正确,欢迎大家指点。

 

   发表时间:2008-03-31  
在OO设计中,实体的意思应该是需要被持久化操作的类名词对象,但是楼主上面所提到的这些实体其中有一些比如算法实体并不需要存到持久设备中,而另外关系实体是其他实体的依赖描述,是关系数据库中的FK来表示,而常量实体应该是作为可配置数据写在每个特定的应用(的配置文件中)吧?
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics