我有一个有关客户从公司购买股票并计算分支销售的情况。因此,我制作了一个客户,购买和分支销售的类图,但是我不确定要在分支销售实体中放置什么,因为该分支销售应该表明每个分支的总销售量。这是我的图表:
分支机构的销售也应该像购买实体中那样包括purch_totalprice,purch_stock和purch_stockquantity吗?
该图看起来更像是数据库表的entity/relationship diagram,而不是UML class diagram:
话虽这么说,无论是哪种建模语言,此图:
不显示Customer
正在购买什么。 stock
太含糊:库存中是否包含这种材料?这是股票交易所股票(公司股票)吗?无论答案如何,都最好将其显示为自己的类/实体(此后我将使用Product
)。
不显示用branch_id
标识的任何类/实体。我建议添加一个名为Branch
不显示关联/关系。您至少应具有Customer--Purchase
,Purchase--Product
和Purchase---Branch
,以及它们的多重性/基数。
如果模型中具有所有这些信息,则“分支销售”实际上是Purchase
的数据摘录,而不是不同的实体:客户的购买是分支的销售。对于您的图表:
getSalesDetails()
函数:此函数将返回该分支的所有相关Purchase
对象的列表。您还可以添加getTotalSales()
,以进行相关销售的总计。 Perhap考虑了购买的date
吗? Branch--Purchase
标记为makes sales
来明确说明。但是您也可以显示如果要记录物理模型并打算在数据库中实现此模型(使用冗余数据,不推荐使用,或使用视图),则使用单独的表复制相关数据。关于类的最后一个重要提示:
如果您的图应该是UML类图,但是您想显示数据库模型的详细信息,则可以在每个实体的上方放置«table»
。
但是,如果您不打算记录类,即,类将不进行任何操作而保留(即类行为),则确实缺少某些内容-就像anemic domain model(不是坦率的,但远非理想)。