大家来看一下这种情况如何分析?用什么样的模型表示比较合适?

ai_daoluan 2002-05-16 10:51:59
我们在分析单据的时候,一般都是要画成至少两个类:一个单据类和一个单据明细类(明细可能是多个),现在的问题是单据之间的参照关系如何表示?参照关系是指业务上两个单据又相互的联系,一个单据要根据另一个单据来参照生成。比如订单跟发货单,他们一般是多对多的关系,在画的时候我们用了两种方式:一种是在订单和发货单之间直接用Association线,然后在关系上引出一个Association Class;另一种方法是加入一个订单发货关联类,订单和发货单分别连在这个关联类上,而不直接关联。这两种表示方式用哪种方式比较合适?从生成的代码上看,他们都是一样的。
对于这种单据间的参照关系,如何在关联类中表示出两个单据是根据单据明细来关联还是单据本身来关联(绝大多数情况是根据明细来关联的,因为明细对应了单据行)?
另外,对于这种单据间的参照关系,在分析模型和设计模型中应该如何表示?
...全文
7 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ai_daoluan 2002-06-04
upup
回复
ai_daoluan 2002-06-04
upup
回复
cxx1997 2002-05-26
up
回复
lizhongkun 2002-05-26
g&z
回复
ai_daoluan 2002-05-25
关注一下
回复
flyxing 2002-05-17
up
回复
faust 2002-05-17
表实际上就是 类在数据库中保存的持久对象
为了记录描述对象间关系,对应就有了表间关系

两者非常类似,但持久对象的关系是静态的
回复
mach 2002-05-17
其实oo和er是类似的,因此如果和表之间的关系类似是有可能的,关键是你的类图是出自于我们上面描述的类/对象关系的描述
回复
ai_daoluan 2002-05-17
这些关系不大好画,一不小心画出来之后别人都说怎么象是几个表之间的关系,我也不知道是我画的不恰当呢还是他们理解错了。
回复
mach 2002-05-17
在分析模型中就描述出这些类和他们之间的关系就可以了,至于设计模型,要看你准备以什么方式实现了,比如需要持久化,则要考虑这些关系如何对应到持久化的方法上,如进行o-r mapping
回复
ai_daoluan 2002-05-16
现在还不能结贴,回头结贴时补上。
回复
ai_daoluan 2002-05-16
对呀,就是这些关系,现在是这些关系在分析模型中如何表示比较恰当?在设计模型中呢?
另外,非常感谢你的回答,先送上20分,聊表谢意。
回复
mach 2002-05-16
你说的这种情况,我做过,其实一般的进销存都有这样的逻辑。

首先订单包含明细,明细指向物料
发货单可以根据某订单创建,也可以根据某些订单中的明细创建,发货单的名细不一定等于订单的明细,因为它们的数量可能不一样,但是是指向同一个物料的。
因此有如下类:
订单
订单明细
物料
发货单
发货单明细
订单和发货单之间有多对多的关系
订单明细和物料之间有多对一的关系
发货单明细和物料之间也有多对一的关系
订单明细和发货单明细之间有多对多的关系
这样如何?
回复
ai_daoluan 2002-05-16
订单和明细都从发货依据类中派生是什么含义呢?这个基类与订单发货关联建立什么联系?
实际上订单跟发货单的关系其实与普通的属性关联还不完全相同,有一定的语义含义,发货单上的明细行的数据是从订单行上取出来的,即发货单明细上的物料是取的订单行上的物料。订单跟发货单是多对多关系,表示一个订单上的物料可以多次发货,而一张发货单上可以发几张订单上的物料,一般通过客户或者其他条件来进行选择。所以这就是发货单是参照订单生成的原意。对这种情况,模型如何表示最好?
回复
mach 2002-05-16
后一种方法比较合适,因为Association Class是描述关联的属性的,语义上与你的描述并不完全一致。
至于后面的问题,可以这样解决,引入一个类,称为“发货依据”,订单和明细都从他派生,你的订单或明细通过这个基类与“订单发货关联类”建立联系,而在“订单发货关联类”中描述关联的究竟是订单还是明细。
回复
发动态
发帖子
研发管理
创建于2007-08-27

1180

社区成员

软件工程/管理 管理版
申请成为版主
社区公告
暂无公告