有两个相同的实体不好吗?
Is it bad to have two identical entities?
我正在创建领域模型,我需要一些实体方面的帮助。我有一个 Sale
实体(代表向买家销售商品的行为)和一个 Purchase
实体(代表从供应商处购买商品以填补库存的行为)。我看到了两种处理方式:
- 创建两个实体
Sell
和 Purchase
以及为它们分别命名为 Sell details
和 Purchase details
的其他实体,属性为 [sell_id
/ purchase_id
、product_id
、...、quantity
]。但在这种情况下,我的数据库中将有两个几乎相同的实体,这是明显的数据重复。
- 我看到的第二种方法是创建一个具有附加属性
order_type
的实体 Order
(以及用于存储订单类型的同名实体:purchase
和 sell
)和Order_details
实体,因此我们可以从第一种方法中避免数据重复。
请分享您如何处理这种情况的经验。谢谢。
一个商业组织既有销售订单又有采购订单。两种对象类型可能共享其结构的相当一部分,但它们也可能有 attributes/operations/constraints 不共享。特别是,对于企业而言,销售订单(和销售部门)通常比采购订单(和采购部门)更重要。对于他们的销售订单,他们有可用性检查、交货计划和信用额度检查等操作,这他们没有采购订单。
通常不值得尝试找到一个组织的所有不同类型的订单(例如 sales/purchase/transport/production/etc. 订单)的(抽象)超类型并使用 subtyping/inheritance 来共享一些它们的结构定义。
我正在创建领域模型,我需要一些实体方面的帮助。我有一个 Sale
实体(代表向买家销售商品的行为)和一个 Purchase
实体(代表从供应商处购买商品以填补库存的行为)。我看到了两种处理方式:
- 创建两个实体
Sell
和Purchase
以及为它们分别命名为Sell details
和Purchase details
的其他实体,属性为 [sell_id
/purchase_id
、product_id
、...、quantity
]。但在这种情况下,我的数据库中将有两个几乎相同的实体,这是明显的数据重复。 - 我看到的第二种方法是创建一个具有附加属性
order_type
的实体Order
(以及用于存储订单类型的同名实体:purchase
和sell
)和Order_details
实体,因此我们可以从第一种方法中避免数据重复。
请分享您如何处理这种情况的经验。谢谢。
一个商业组织既有销售订单又有采购订单。两种对象类型可能共享其结构的相当一部分,但它们也可能有 attributes/operations/constraints 不共享。特别是,对于企业而言,销售订单(和销售部门)通常比采购订单(和采购部门)更重要。对于他们的销售订单,他们有可用性检查、交货计划和信用额度检查等操作,这他们没有采购订单。
通常不值得尝试找到一个组织的所有不同类型的订单(例如 sales/purchase/transport/production/etc. 订单)的(抽象)超类型并使用 subtyping/inheritance 来共享一些它们的结构定义。