Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
有个梨UGlee 2019-11-02 02:06:11 发布的技术动态 - OurCoders (我们程序员)
有个梨UGlee
2019-11-02 02:06:11 发布
截图是Amazon DynamoDB文档,注意中间有一句很惊人的话:绝大多数良好设计的应用只需要一张表。

在最佳实践一节有一个many to many的例子,使用了一个设计模式:adjacency list。把两种结构的数据混在一个表里。文档链接:网页链接

文档中的schema图示有点模糊,stackoverflow上有更详细的解释:网页链接

看懂这个例子就能理解Dynamo的本质。它不是根据数据结构的模型意义上的关系设计表结构的,而是根据你需要如何查询数据来设计表结构的。这个设计模式应该没有悬念的成为DynamoDB的最为重要的设计模式。它确实是很惊人的,对于像我这样没怎么用过DynamoDB的人来说(也没怎么用过bigtable,我估计两者是很接近的)。

看起来很tricky,但确实解决问题。DynamoDB支持transaction,意味着同时连续更新几条记录以保障关系的完整性是可以做到的。