首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dynamodb单表中处理更多到多个关系

在dynamodb单表中处理更多到多个关系
EN

Stack Overflow用户
提问于 2020-09-28 06:20:35
回答 1查看 270关注 0票数 0

我正在为一个研究所设计一个dynamodb表。它有学院、学生、科目和教师等实体。他们之间的关系是这样的。

  • 学院-学生多到多
  • 学院教师多到多
  • 学院-科目多到多

我选择institute id作为PKlocation作为SK。但在这种情况下,有更多到许多关系。那么,在dynamodb中如何处理这种情况呢?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-09-28 11:36:31

DynamoDB是一个noSQL数据库,在该数据库中,您应该尽可能地去还原和复制您的数据。您正在使用SQL进行思考,并试图将您的数据规范化,您需要转换您的思维方式。

为每个学院、学生、教师和学科创建一个项目。在学院内部创建一个students地图或列表(我更喜欢以ID为键的地图),以及学生内部的institutes地图或列表。这些地图或清单是由你的原始物品的副本组成的:

代码语言:javascript
复制
inst-0 | USA  | Institute name                              | { stud-0: { name: John }, studo-1: { name: Matt } }
-----------------------------------------------------------------------------------------------------------------
stud-0        | John | { inst-0: { name: Institute name } } |
-----------------------------------------------------------------------------------------------------------------
stud-1        | Matt | { inst-0: { name: Institute name } } |

这里的缺点是,当原始的更改时,您需要更新每个副本。但是,这通常不是一个问题,除非您的数据变化非常频繁。

如果您复制的数据经常更改,您可以创建一个中间关系项,但可能关系数据库更适合您的项目。

您还可以为每个学生创建一个项目,并将对这些学生的引用存储到学院项目中。但是在这里,你并不是在去篡改你的数据,但是如果你的数据经常变化,或者你在每个学院有大量的学生,这可能是一个可行的解决方案。

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

https://stackoverflow.com/questions/64096902

复制
相关文章

相似问题

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