Моделирование иерархических данных с помощью DynamoDB - PullRequest
0 голосов
/ 19 июня 2019

Здравствуйте. Я пытаюсь создать простое веб-приложение для создания древовидной структуры с использованием конечных точек отдыха.

Я планирую использовать AWS для своего небольшого небольшого приложения и создать конечные точки отдыха для чтения и создания данных.

Вот некоторые шаблоны доступа к данным:

  1. Создать нового пользователя.
  2. Получение пользователей по имени пользователя (поиск по шаблону, если возможно)
  3. Создать новое дерево для конкретного пользователя
  4. Получить деревья на основе идентификатора пользователя
  5. Получить дерево на основе идентификатора дерева
  6. Добавление узла в выходящее дерево
  7. Редактировать узел существующего дерева
  8. Поделиться деревом с другим пользователем

Я решил использовать dynmao db для базы данных, и, поскольку я новичок в этом, хочу спросить ваше мнение о модели данных, которую я проектирую, вот она:

User
    - id        -> partition key
    - firstName -> local secondary key
    - lastName  -> local secondary key
    - email     -> sort key

Tree
    -id            ->sort key
    -userId        ->partition key
    -name          ->local secondary key
    -type          ->local secondary key
    -desc

TreeNodes
    -id           ->sort key
    -parentId     ->partition key
    -treeId       ->local secondary key
    -rootNode     -> true|false
    -columns      ->[{"colName1":"colval1"},{"colName2":"colval2"},...]

Я прошу это для двух целей Во-первых, если я допустил какую-то фундаментальную ошибку при разработке схемы, например, если я не использовал ключ раздела так, как он должен использоваться, или любую другую фундаментальную ошибку, поскольку я не очень хорошо понимаю DynamoDB. Во-вторых, если вы можете предоставить лучший дизайн схемы для моих требований к приложению.

...