Решение для моделирования данных «один ко многим» в DynamoDB - PullRequest
0 голосов
/ 05 сентября 2018

Скажите, что я хочу базу данных для встреч с врачом. На прием назначается один врач, один пациент, дата и список «услуг».

Изучая лучшие практики DynamoDB, кажется, рекомендуется иметь все в одной таблице. Однако я также могу получить список всех врачей (и добавить новых врачей), а также сделать то же самое со всеми доступными услугами.

Таким образом:

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

Я мог бы держать все как есть и просто назначать встречи за основным столом, с дополнительными индексами для врачей, служб и т. Д., Но это не позволяет мне легко создавать новых или модифицировать существующих врачей (то же самое для услуг).

1010 *, например *

{
  _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?

Спасибо!

...