JiveJdon Community Forums
在线175人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 3 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
heliangbin

发表文章: 6
注册时间: 2004年07月15日 16:49
给他发消息
请板桥大哥解答一个建模的问题??? 发表: 2005年12月30日 18:16 回复
经验在JDON论坛上看Banq大哥写(回复)的一些经典的文章,今天我也提一个困惑我许久的问题:
现在我所在的公司的业务系统中有这么一个模块,可以抽象为两个主要的对象Agent(代理人),Department(部门)。Agent的属性有编号,名称,职级,所属Department等等,Department的属性有编号,部门,上级Department,负责人等等。Agent的职级可以改变(比如从经理降为副经理等等)也可以将一个Agent从一个部门转到另外一个部门。Department是一个树形结构,有根部门,子部门,可以将一子部门转到另一部门之下。现有如下需求:(1)在某一特定时间查看某一代理人的详细信息(2)找出某一特定时间某部门的详细信息及其下所有的代理人。
目前我们的数据模型是这样设计的:四张表(t_agent,t_agent_backup,t_dept,t_dept_backup),t_agent_backup和t_dept_backup都会定期对t_agent,t_dept作备份,查找某一时间某代理人的信息时,根据时间标志从t_agent_backup里取;查找某一时间某部门的详细信息及其下的所有代理人时也是根据时间标志从t_dept_backup里取
我非常不赞成这种设计。因为一:典型的数据驱动建模实现 二:逻辑本身的不合理性,大部分代理人可能不会有什么改变(职级变动,部门变动)为什么也要每次都要被备份呢?三:反映在对象模型上的不可理解性(Agent和AgentBackup,Dept和DeptBackup是什么关系?)
我的对象模型是如下图(用手工画的,见笑了)


AgentInfoLog,DeptInfoLog分别与Agent,Dept是聚合关系,Agent,Dept有被修改时会产生相应的日志记录。但是我的模型也有问题,如(在某一特定时间查看某一代理人的详细信息)和(找出某一特定时间某部门的详细信息及其下所有的代理人)时有点麻烦
不知我的问题有没有描述清楚,还请Banq大哥及所有高手给点建议,谢谢
banq

发表文章: 9095
注册时间: 2002年08月03日 17:08
给他发消息
Re: 请板桥大哥解答一个建模的问题??? 发表: 2006年01月04日 21:01 回复
你这个也是涉及状态的建模,以状态思维考虑,状态是和时间相关的,某段时间状态是什么?

建议用四色模型细化你的Domain Model,等我有空给你画一下。

http://www.jdon.com/artichect/state.htm
heliangbin

发表文章: 6
注册时间: 2004年07月15日 16:49
给他发消息
Re: 请板桥大哥解答一个建模的问题??? 发表: 2006年01月09日 14:53 回复
谢谢Banq大哥回答我的问题
小弟学浅不明白什么叫四色模型
hawk_e2e

发表文章: 2
注册时间: 2006年02月09日 14:31
给他发消息
Re: 请板桥大哥解答一个建模的问题??? 发表: 2006年02月13日 11:30 回复
有2个地方看不懂:
1.t_agent_backup和t_dept_backup是根据什么条件作备份的?备份还是转移?
2.“找出某一特定时间某部门的详细信息及其下所有的代理人”,你的意思是不是想查询历史数据。也就是说,因为某个AGENT可能在特定时间改变了其DEPT,而你又想查回这个AGENT原来的DEPT,是不是?那么t_agent中保存的是AGENT目前所属的DEPT。

建议你把AGENT和DEPT的所属关系独立建表,如:(AGENT_ID,DEPT_ID,CREATE_TIME)。原来的2个备份表就不需要了。

这个主题有 3 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam