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

值对象如何存储在数据库中?

  •  52
  • kitsune  · 技术社区  · 16 年前

    例如,如果我有一个Person实体/聚合根和一个对应的Person表,如果它有一个名为Address的Value对象,那么Address值将保存在这个Person表中!

    3 回复  |  直到 16 年前
        1
  •  137
  •   Vijay Patel    16 年前

    出于上述原因,可以将值对象存储在单独的表中。然而,我认为你误解了实体和VOs——这不是一个与持久性相关的问题。

    下面是一个例子:

    公司 住址 . 这些陈述中哪一个认为有效?

    1. 要自动获取的个人地址 这些变化”
    2. “如果我修改公司地址,它将 不得影响个人。地址“

    如果 1. 是的, 住址 ,因此有自己的表

    如果 是的, 住址 应该是一个 价值对象 . 它可以作为组件存储在父实体的表中,也可以有自己的表(更好的数据库规范化)。

    如您所见,地址的持久化方式与实体/VO语义无关。

        2
  •  20
  •   Pepito Fernandez    12 年前