首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DDD和MongoDB:让Mongo创建ObjectID可以吗?

DDD和MongoDB:让Mongo创建ObjectID可以吗?
EN

Stack Overflow用户
提问于 2012-08-02 20:49:51
回答 1查看 1.6K关注 0票数 5

根据DDD ( book,Evans),工厂有责任在有效状态下创建聚合根。这是否意味着它应该能够创建技术id (objectId在mongoDB世界中)以及域id?

一方面,这似乎是一个技术细节,似乎可以让Mongo处理ID的创建。

另一方面,启用id查询(通过在DDD存储库中使用getById )将技术id公开给域,这反过来又使工厂有责任创建它。

也许我无法理解技术Id和DomainId的不同用例/重叠等等,也可能我太热心了,但我还是会感谢您的意见。

简而言之:在DDD中:工厂应该能够创建技术Id和域Id吗?

可能的实施: Hi/Lo ( How to set the hilo sequence starting value in MongoDB Norm?)

编辑:--尽管hi/lo方法将工厂暴露于持久化层,但这是只有存储库才知道的。嗯,嗯

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-03 04:08:59

工厂不必担心ID,因为聚合的有效性与身份是正交的。标识可以通过几种不同的方式分配,要么作为关系数据库中的增量ID (在这种情况下,存储库必须管理它),要么作为UUID/GUID分配,在这种情况下,它可以由工厂或存储库分配,甚至调用客户端(这是方便的,因为这样客户端默认拥有密钥)。

只要有可能,我就尝试维护聚合的单一身份。我不确定MongoDB是否需要一个额外的技术ID,但是如果它需要并且不能使用域ID来代替它,那么MongoDB应该自己和幕后管理它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11785530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档