gpt4 book ai didi

domain-driven-design - 值对象如何存储在数据库中?

转载 作者:行者123 更新时间:2023-12-01 17:29:17 25 4
gpt4 key购买 nike

我还没有真正看到任何示例,但我假设它们保存在数据库中的包含实体表中。

即。如果我有一个 Person 实体/聚合根和一个相应的 Person 表,如果它有一个名为 Address 的值对象,则地址值将保存在该 Person 表中!

这对于我拥有其他实体(例如公司等)且拥有地址的域有意义吗?

(我目前正在编写一个项目管理应用程序并尝试进入 DDD)

最佳答案

出于您所描述的原因,可以将值对象存储在单独的表中。但是,我认为您误解了实体与 VO - 这不是与持久性相关的问题。

这是一个例子:

假设公司个人都具有相同的邮件地址。以下哪些陈述被认为是有效的?

  1. “如果我修改 Company.Address,我想要自动获取的Person.Address这些变化”
  2. “如果我修改 Company.Address,则不得影响 Person.Address"

如果1为真,地址应该是一个实体,因此拥有自己的表

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

如您所见,Address 的持久化方式与 Entity/VO 语义无关。

关于domain-driven-design - 值对象如何存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com