首页 > 解决方案 > 使用 DynamoDB 并进行非规范化以尝试将关系数据转换为 NoSql 思维方式

问题描述

使用 DynamoDB 并进行非规范化以尝试从关系数据转换为 NoSql 思维方式时

我想了解在特定情况下非规范化的方法。一旦这对我有意义,我很确定知识闸门会打开。

假设我有一个歌曲数据库 (RDMS) 并且我有流派。我可能会做这样的事情

|generaId | generaTitle|
|5| Rock & Roll|
|6| Hip Hop|

歌曲

titleid| generaId | title
321|5| Great Balls of Fire
322|6| Gimme Some More

我会加入这些表以获得generaTitle,并且我可以通过简单地更新一条记录来轻松地更新属名

UPDATE generas set generaTitle = 'Rock n Roll' where generaId = 5;

在 DynamoDB 中

titleid  '65as56ldjalskd23131sdad'
title: Great Balls of Fire
genre: Rock & Roll

所以,假设我现在有 100,000 首摇滚歌曲。我是否不必执行 100,000 条记录的大规模更新来更改它?

-或者-

有一些程序关系是否正常,所以我可以这样做

titleid  '65as56ldjalskd23131sdad'
title: Great Balls of Fire
genre: 5

在应用程序级别,我知道 5 = 来自先前查询的 Rock & Roll 并将其缓存。

从查询的角度来看,我可以围绕二级索引和全局二级索引。

似乎仍然需要某种程度的关系。我可以接受一遍又一遍地“摇滚”100,000 次,但我不能接受更新 100,000 条记录以将 Rock & Roll 更改为 Rock N Roll 的概念

就好像每次谈话和出版物都在谈论这个问题,我认为这可能是我们 RDMS 人员面临的最大问题之一。也许这只是我。

现在,如果有人对我说,“你在 NoSQL 中没有数据库级关系,但如果没有假设你会有用于应用程序级关系的表,这是很正常的”,我的整个世界都会改变。

如果不是这样,有人可以向我说明这一点。

标签: amazon-dynamodb

解决方案


推荐阅读