Class图的实体属性查询
Class diagram's entity attributes inquiry
我有一个客户从公司购买股票并计算分支机构销售额的场景。所以我制作了一个 class 客户、采购和分支销售图,但我不确定在分支销售实体中放什么,因为这个分支销售应该表示每个分支完成的总销售额。
这是我的图表:
分支销售是否也包括purch_totalprice、purch_stock和purch_stock数量,就像购买实体一样?
图表看起来更像 entity/relationship diagram for database tables than like an UML class diagram:
- 在 UML class 图中,您不会使用虚线将唯一标识符与其他属性分开,但您会使用分隔符来显示操作(即方法或函数)。
- 在 ER 图中,这种做法并不常见,但也不常见。
这就是说,无论建模语言如何,这张图:
不显示 Customer
购买的商品。 stock
太模糊了:你的库存中有一个 material 吗?这是证券交易所的股票(公司的股份)吗?无论答案如何,最好将其显示为自己的 class/entity(我将在下文中使用 Product
)。
不显示任何用 branch_id
标识的 class/entity。我建议添加一个名为 Branch
的实体
不显示 associations/relations。您应该至少有 Customer--Purchase
、Purchase--Product
和 Purchase---Branch
,也没有他们的 multiplicity/cardinality.
如果您的模型中有所有这些信息,"branch sales" 实际上是 Purchase
的数据提取,而不是一个独特的实体:客户的购买是分支机构的销售.对于您的图表:
- 如果您使用的是 class 模型,您将添加一个
getSalesDetails()
函数:此函数将 return 所有相关 Purchase
对象的列表对于那个分支。您还可以添加一个 getTotalSales()
来计算相关销售额的总和。或许考虑到 date
的购买?
- 如果你在 ER 模型中,你会知道如何找到这些数据,这要归功于分支和采购之间的关联(你可以通过将关系
Branch--Purchase
标记为 makes sales
。但是,如果您想记录您的物理模型并打算在您的数据库中实现它(使用冗余数据,不推荐或使用视图),您也可以显示一个单独的 table 并复制相关数据
关于 classes 的最后重要评论:
如果您的图应该是 UML class 图,但您想显示数据库模型的详细信息,您可以将 «table»
放在每个实体上方。
但是,如果您不打算记录 classes,即 classes 将保持没有操作(即 class 行为),那么确实缺少一些东西- 就像 anemic domain model(不禁止,但远非理想)。
我有一个客户从公司购买股票并计算分支机构销售额的场景。所以我制作了一个 class 客户、采购和分支销售图,但我不确定在分支销售实体中放什么,因为这个分支销售应该表示每个分支完成的总销售额。 这是我的图表:
分支销售是否也包括purch_totalprice、purch_stock和purch_stock数量,就像购买实体一样?
图表看起来更像 entity/relationship diagram for database tables than like an UML class diagram:
- 在 UML class 图中,您不会使用虚线将唯一标识符与其他属性分开,但您会使用分隔符来显示操作(即方法或函数)。
- 在 ER 图中,这种做法并不常见,但也不常见。
这就是说,无论建模语言如何,这张图:
不显示
Customer
购买的商品。stock
太模糊了:你的库存中有一个 material 吗?这是证券交易所的股票(公司的股份)吗?无论答案如何,最好将其显示为自己的 class/entity(我将在下文中使用Product
)。不显示任何用
branch_id
标识的 class/entity。我建议添加一个名为Branch
的实体
不显示 associations/relations。您应该至少有
Customer--Purchase
、Purchase--Product
和Purchase---Branch
,也没有他们的 multiplicity/cardinality.
如果您的模型中有所有这些信息,"branch sales" 实际上是 Purchase
的数据提取,而不是一个独特的实体:客户的购买是分支机构的销售.对于您的图表:
- 如果您使用的是 class 模型,您将添加一个
getSalesDetails()
函数:此函数将 return 所有相关Purchase
对象的列表对于那个分支。您还可以添加一个getTotalSales()
来计算相关销售额的总和。或许考虑到date
的购买? - 如果你在 ER 模型中,你会知道如何找到这些数据,这要归功于分支和采购之间的关联(你可以通过将关系
Branch--Purchase
标记为makes sales
。但是,如果您想记录您的物理模型并打算在您的数据库中实现它(使用冗余数据,不推荐或使用视图),您也可以显示一个单独的 table 并复制相关数据
关于 classes 的最后重要评论:
如果您的图应该是 UML class 图,但您想显示数据库模型的详细信息,您可以将
«table»
放在每个实体上方。但是,如果您不打算记录 classes,即 classes 将保持没有操作(即 class 行为),那么确实缺少一些东西- 就像 anemic domain model(不禁止,但远非理想)。