代码之家  ›  专栏  ›  技术社区  ›  terjetyl

DDD,主-明细关系中的相关实体

  •  1
  • terjetyl  · 技术社区  · 15 年前

    据我所知,所有DDD实体都应该有一个ID。所以我的问题是在主-详细关系中,比如说产品和产品详细信息,产品详细信息是否应该了解该产品?是否需要在ProductDetail类中使用ProductID属性?在数据库中,这当然是正常的,因为这是链接两个对象的唯一方法,但这是DDD中的最佳实践吗?我使用Linq2Sql作为ORM映射器,所以这是一个给定的方法,但我认为这不是正确的方法。有人对这件事有什么看法吗?

    2 回复  |  直到 15 年前
        1
  •  5
  •   dthrasher    15 年前

    最终用户将如何检索ProductDetail?如果答案是他们可能会从产品导航到它,那么ProductDetail只是产品的一个属性,或者是产品属性的ProductDetails集合的一部分。

    因此,在面向对象的代码中,ProductDetail对象不需要引用父产品。

    现在在数据库中,您可能有一个Id列的产品主表。然后,您就有了ProductDetail的子表,该表具有与其相关的产品Id的外键。

    非常重要

        2
  •  1
  •   Prankster    15 年前

    外键是关系数据模型的工件。对象模型使用容器的概念进行操作。因此,订单包含订单行的集合。订单行包含产品等。