Рекомендации по структуре таблицы DynamoDB - PullRequest
0 голосов
/ 12 марта 2020

У меня есть некоторые данные, которые мне нужно сохранить в DynamoDB. Его общая структура как объекта:

ProductName: {
  Category: {
    Term_1: { "en-ca": "Term One Nicely Formatted in English", "fr-ca": "Term One en francais" },
    Term_2: { "en-ca" ... }
  },
  Category2: {
    Term_3: { ... },
    Term_2: { ... }
  },
}

В целом каждый продукт имеет около 10 категорий, а каждая категория имеет от 2 до 1000 терминов, каждый термин может иметь сколько угодно переводов, которые мы в конечном итоге добавим в таблицу. .

Сами термины уникальны только внутри категории, а не для всего набора данных.

Исходные данные создаются путем запроса 10 столбцов данных для всех их уникальных значений (столбцы - это категории ), применяя некоторые базовые c правила, чтобы «угадать», каким должен быть перевод, и создавая объект, структурированный, как показано выше. Затем мне нужно записать его в «Динамо».

Я пытался сделать это как один элемент в «Динамо», где ha sh - «Продукт», одну карту под названием «Переводы», и я просто пишу всю содержимое моего объекта до предмета. Не самая страшная вещь в мире, но немного грязно, когда пытаешься создать интерфейс для редактирования переводов.

Данные действительно используются только двумя способами.

  • Создание файла stati c JSON с переводами
  • Для просмотра через интерфейс, который позволяет пользователю просматривать и изменять переводы, если это необходимо, и сохранять их обратно в динамо.

Запросы кажутся сложными, если я сделаю термин / категорию составным ключом / переменной сортировки. Не делать Product частью этого означает, что мне придется создавать таблицы для каждого Product (не страшно, просто чувствует себя неправильным), и хранить все как один элемент Map кажется, что это вызовет проблемы при попытке обновлять отдельные термины и сохранять все в курсе c, не говоря уже о том, что это ненужный объем данных для чтения / записи.

Я прочитал кучу топи c, но не могу оберните мою голову, выбирая правильное решение.

...