У меня есть некоторые данные, которые мне нужно сохранить в 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, но не могу оберните мою голову, выбирая правильное решение.