【问题标题】:One-to-many relationships in NoSQL DBNoSQL DB 中的一对多关系
【发布时间】:2021-10-27 03:29:59
【问题描述】:

我刚开始学习 DynamoDB,遇到了一个大问题。

假设,我有一个作者和一个 book 表,其中作者可以有多本书,每本书必须有一个作者。

所以,在 NonSQL DB 中,我只是在 book 表中嵌入了作者信息来解决这个问题。

示例代码:https://pastebin.ubuntu.com/p/DvHpS8JQJV/

但是,最近我遇到了一个问题,如果很久以后管理员想要更改一些关于作者的信息,比如 live 属性。怎样才能在书台上生效。

注意:作者表中嵌入的书籍集合可以解决这个问题,但将来检索所有带有分页和其他操作的书籍数据可能会更加困难。

在关系数据库中,只需使用外键并使用连接查询检索数据即可轻松解决。

我如何在 NonSQL 或 dynamoDB 中解决这类问题有什么建议吗?

【问题讨论】:

  • 您对书籍和作者有哪些访问模式?

标签: nosql amazon-dynamodb


【解决方案1】:

你有两个选择。

  • 采用半 SQL 设计。为书籍和作者创建单独的表。连接将在应用程序级别处理。从性能角度来看,它并不完美,但对于具有 SQL 背景的开发人员来说,它很容易上手。
  • 采用单表设计。这是一个复杂的话题。没有像 SQL 那样处理一对多关系的灵丹妙药。您需要充分了解您的领域和单表设计才能做好这项工作。

【讨论】:

  • 为什么书籍和作者要分开表?
  • 允许在不使用单表设计的情况下基于书籍和作者进行查询
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 2012-12-26
  • 2014-09-25
  • 2014-01-23
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多