有两个相同的实体不好吗?

Is it bad to have two identical entities?

我正在创建领域模型,我需要一些实体方面的帮助。我有一个 Sale 实体(代表向买家销售商品的行为)和一个 Purchase 实体(代表从供应商处购买商品以填补库存的行为)。我看到了两种处理方式:

  1. 创建两个实体 SellPurchase 以及为它们分别命名为 Sell detailsPurchase details 的其他实体,属性为 [sell_id/ purchase_idproduct_id、...、quantity]。但在这种情况下,我的数据库中将有两个几乎相同的实体,这是明显的数据重复。
  2. 我看到的第二种方法是创建一个具有附加属性 order_type 的实体 Order(以及用于存储订单类型的同名实体:purchasesell)和Order_details 实体,因此我们可以从第一种方法中避免数据重复。

请分享您如何处理这种情况的经验。谢谢。

一个商业组织既有销售订单又有采购订单。两种对象类型可能共享其结构的相当一部分,但它们也可能有 attributes/operations/constraints 不共享。特别是,对于企业而言,销售订单(和销售部门)通常比采购订单(和采购部门)更重要。对于他们的销售订单,他们有可用性检查交货计划信用额度检查等操作,这他们没有采购订单。

通常不值得尝试找到一个组织的所有不同类型的订单(例如 sales/purchase/transport/production/etc. 订单)的(抽象)超类型并使用 subtyping/inheritance 来共享一些它们的结构定义。