Я начал изучать DynamoDB, но застрял, читая эту часть о материализованном графовом шаблоне: лучшие практики для управления отношениями "многие ко многим".
Я предполагаю, что у меня есть некоторые идеи, но пока не понимаю всего этого. Насколько я понимаю шаблон, основная таблица хранит ребра, и у каждого ребра могут быть свойства (атрибут data).
Например (взято из показанных таблиц): Узел 1 (PK 1) имеет ребро для Узла 2 типа DATE, а ребро имеет тип BIRTH (SK DATE | 2 | BIRTH).
Я полагаю, что это будет примерно так же, как() - [: BIRTH] → (: DATE {id: 2}) в Cipher, верно?
Но после этого становится неясно, как все сходится. Например:
- Может ли атрибут данных быть картой?
- Должен ли атрибут данных записываться в два места при записи? Например, под (1, ДАТА | 2 | РОЖДЕНИЕ) и (2, ДАТА | 2)?
- Если я хочу добавить нового человека, родившегося 1980-12-19, должен ли я сначала искать соответствующий узел?
- Как я могу получить все свойства, связанные с узлом? Как получить все свойства, связанные с ребром?
- Как я могу запросить соседние узлы?
- ...
Может кто-нибудь объяснить мне, как все сходится, пройдя через несколько вариантов использования?
Заранее спасибо.