Управление ссылочной целостностью в aws DynamodB - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь сохранить данные категории в моей таблице aws dynamodb.

Id | category |   difficultyLevels

1  | History  |  ['Easy', 'Medium']

Теперь проблема с этим заключается в том, что строки 'Easy' и 'Medium' жестко закодированы и завтра Если я хочу измените строку «Легко» на «Легко». Это было бы очень больно. Поэтому я планирую реализовать свои таблицы следующим образом: -

Таблица - Уровень сложности

id    | Difficulty_Level

1     | Easy

2     | Medium

Таблица - Категория

Id | category | difficultyLevels

1  | History  |  [1, 2]

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

Проблема, которую я даже вижу при таком подходе, заключается в том, что даже если уровни сложности «Легкий» удаляются из таблицы DifficultyLevel. Его ссылка присутствует в таблице категорий. Это то, что мы можем контролировать в СУБД.

1 Ответ

1 голос
/ 31 марта 2020

Нет ссылочной целостности в базах данных No SQL, таких как Mon go. Чтобы выполнить вышеупомянутое требование, вы можете использовать ссылку между документами, где ссылка на документ коллекции DifficultyLevel будет использоваться в коллекции категорий. Пожалуйста, смотрите в пн go документы для более подробной информации- https://docs.mongodb.com/manual/tutorial/model-referenced-one-to-many-relationships-between-documents/index.html

...