Domain driven design 领域模型-设计模型

Domain driven design 领域模型-设计模型,domain-driven-design,repository-pattern,domain-model,Domain Driven Design,Repository Pattern,Domain Model,关于领域驱动设计: 我有域模型、存储库和服务。我的问题是关于域的建模 例如,我有一个包含Employee、CountryId、State Id的数据库表 我将如何建模我的域对象,我将使用id还是文字值来建模它 在什么情况下,我会将Id值解析为文本值 我应该使用这些服务来指向存储库的CRUD操作,还是这是一种反模式 非常感谢您的帮助。我将如何建模我的域对象,是用id还是用文字值建模 id是域的一部分还是仅由关系数据库使用?在后一种情况下,您不会使用id进行建模。严格来说,您也不允许在实体中存储id

关于领域驱动设计:

我有域模型、存储库和服务。我的问题是关于域的建模

例如,我有一个包含Employee、CountryId、State Id的数据库表

  • 我将如何建模我的域对象,我将使用id还是文字值来建模它
  • 在什么情况下,我会将Id值解析为文本值
  • 我应该使用这些服务来指向存储库的CRUD操作,还是这是一种反模式
  • 非常感谢您的帮助。

    我将如何建模我的域对象,是用id还是用文字值建模

    id是域的一部分还是仅由关系数据库使用?在后一种情况下,您不会使用id进行建模。严格来说,您也不允许在实体中存储id,但这将要求您创建数据传输对象,这可能会以几乎所有方式镜像您的实体。因此,就我个人而言,我对DDD不太严格

    在什么情况下,我会将Id值解析为文本值

    您的基础架构层应该考虑这一点

    我应该使用这些服务来指向存储库的CRUD操作,还是这是一种反模式


    服务可以调用存储库。然而,如果有两种方法(似乎)在一个代码库中实现相同的效果,这将是一种反模式。您可以将您的服务公开到更高的层(并从该层隐藏存储库),并使用这些服务中的存储库。在这两者之间可能有一些额外的逻辑。

    您看过CQR了吗?你可能会发现回答这些问题很有帮助。你的模型应该是关于什么的?跟踪哪些员工在特定国家的哪个州工作?或者他们出生在哪里?或者他们更喜欢在哪里工作?或者他们过去在哪里工作?明白我的意思吗?!