DDD 关于 aggregate 的规则,是否 mongo 更适合使用呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
qwzhang01
V2EX    程序员

DDD 关于 aggregate 的规则,是否 mongo 更适合使用呢

 
  •   qwzhang01 2023-10-17 20:46:48 +08:00 1700 次点击
    这是一个创建于 724 天前的主题,其中的信息可能已经有所发展或是发生改变。

    DDD 中 aggregate 的规则:

    1. 边界:聚合根定义了一组相关对象的边界。它们是一起被创建、修改和删除的对象的集合。聚合根负责保护和维护其内部对象的一致性和完整性。
    2. 一致性:聚合根负责确保其内部对象之间的一致性。所有对聚合根的操作都应该通过聚合根进行,以确保内部对象的状态和关联关系保持一致。
    3. 根实体:聚合根是聚合中的一个特殊对象,它代表整个聚合。聚合根具有唯一标识符,并且可以通过该标识符进行引用和访问。
    4. 事务边界:聚合根定义了一组操作的事务边界。所有对聚合根的操作应该在同一个事务中进行,以确保数据的一致性和完整性。

    这种思路,是不是更适用 mongo 实现,于 MySQL 比,天然一个记录就是一个 aggregate

    9 条回复    2023-10-20 16:32:41 +08:00
    hbhswj
        1
    hbhswj  
       2023-10-17 21:04:47 +08:00
    其实存储技术应该是最简单的一环
    Leviathann
        2
    Leviathann  
       2023-10-17 21:12:57 +08:00
    hibernate 不就支持一个对象作为字段么
    thinkershare
        3
    thinkershare  
       2023-10-17 22:07:20 +08:00
    你的理解没什么,基于文档的数据库的确更加适合 DDD ,但是随之而来的问题是事务一致性。
    thinkershare
        4
    thinkershare  
       2023-10-17 22:07:29 +08:00
    没什么问题。
    ihuotui
        5
    ihuotui  
       2023-10-17 23:06:18 +08:00
    对于简单一个实体一个表的话,什么数据库都可以,但是一个根对应多个实体(比较复杂的根),确实需要事务(或者保证一致性的支持,但是自己实现事务不如数据库的事务)。
    Qjues
        6
    Qjues  
       2023-10-17 23:32:28 +08:00
    1. mysql 和 mongodb 的关键区别关系型和结构化的点上。
    2. mongo 所谓的文档概念,在 mysql 中也可以通过 json 字段实现。
    3. 复杂业务一个聚合会有多个关联实体,会出现通过实体反向查询聚合场景。ddd 的聚合思想优势更多体现在增删改的入口管理。
    cubecube
        7
    cubecube  
       2023-10-18 00:19:12 +08:00
    mango 一无是处,放弃吧,所有的第一代 nosql 除了 redis ,目前都没啥太大的意义了。在 CPU 性能暴增+全闪存存储下, 关系型数据库根本没有啥缺点
    Desdemor
        8
    Desdemor  
       2023-10-18 10:56:30 +08:00
    aggregate 跟你用哪个数据库无关吧, 他是聚合的每个实体
    zhengchengdong
        9
    zhengchengdong  
       2023-10-20 16:32:41 +08:00
    第一,所谓聚合罗里吧嗦一大堆定义,其本质就是面向对象设计的 “封装性”
    第二,mongodb 官网早期首页上赫然写着 “mongodb 的文档性设计天然契合习惯于对象思维的程序员”,只不过现在都被广告代替了
    所以,你是对的
    另外,没什么可担心的,都是设计思想问题,DDD 是个设计思想
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     884 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:17 PVG 05:17 LAX 14:17 JFK 17:17
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86