在DynamoDB中为一对多数据建模的解决方案

时间:2018-09-05 10:41:17

标签: database nosql amazon-dynamodb

说我想要一个用于医生约会的数据库。约会将有一名医生,一名患者,一个日期和一个“服务”列表。

通读DynamoDB最佳实践,似乎鼓励将所有内容都放在一个表中。但是,我可能还想获取所有医生的列表(并添加新医生),并对提供的所有可用服务也是如此。

因此:

One Doctor ==> Many Appointments
One Patient ==> Many Appointments
Many Services ==> Many Appointments

我可以使所有内容保持不变,只对主表进行约会,并为医生,服务等提供二级索引,但这似乎不允许我轻松地创建新医生或修改现有医生(与服务相同)。

例如

{
  _id: 101,
  doctor: {
    name: "John Smith",
    _id: "555"
  },
  patient: {
    name: "Jane Doe",
    _id: "777"
  },
  dateTime: "31-03-2018-16:30:00"
  services: [ "Check up", "Sports Massage"]
}
...

例如,此手令是否有单独的医生表格,并将_doctorId保留在约会表格中?然后只是将医生缓存在服务器上以保存读取内容?

例如 预约

{
  _id: 101,
  doctor_Id: "555"
  patient_Id: "777"
  dateTime: "31-03-2018-16:30:00"
  service_Ids: [ "300, "306"]
}
...

医生

{
  _id: "555",
  name: "John Smith"
},
...

什么是在DynamoDB中表示此数据的合适方法?

谢谢!

0 个答案:

没有答案