我注意到google nosql、firestore和dynamodb等巨头提供的nosql解决方案没有join查询(这里我不包括mongodb和rethinkdb)。
不过,我喜欢将这些应用于简单和成本效益方面的想法。
我喜欢JSON风格的文档数据库,不想回到varchar等黑暗的时代。因此,我想知道为Web构建99%的数据库有多可行。
以这个场景为例:
用户可以是许多项目的成员,可以在项目列表页上查看其项目,并向下钻取到一个项目。
详情页。
从关系上来说,这很简单:
user: { ..., projects: [projectId1, ...] }
project: { ..., users: [userId1, ...] }
然后您可以进行一个连接,在项目列表等上显示一些基本的细节。
但是对于非关系NoSQL呢?我们如何将其非规范化?
您是否只需要:
user: { no project IDs },
project: { users: [userId1, ...] }
然后对于项目列表页或项目详细信息页,只需在
每一个
投影并返回用户所属的用户?这就是NoSQL在效率方面的繁荣所在吗?我不在这里处理大型数据集,我希望项目是10万个而不是大型文档。谢谢。