Мне трудно смоделировать сценарий, который у меня есть в моем контексте.
Что ж, я смогла смоделировать решение, но в итоге использовались 2 GSI
Контекст здесьв том, что у меня есть Проекты, и у каждого проекта могут быть Задачи
И каждая Задача может иметь отношение с другой Задачей, например, дочерняя, зависимая, родительская.
Изначально я смоделировал следующий способ:
Как видите, у проекта_1 есть две задачи.
И задача_1 зависит от задачи_2
ПричинаGSI 1, поэтому, если у меня есть только идентификатор task_2, я могу выполнить обратный поиск, чтобы увидеть, что от него зависит task_1.
Но , этого было недостаточно, возникла новая проблема:
Если я хочу удалить проект и все связанные с ним данные, как я могу также удалить объекты отношений задач?Ну, я мог бы сделать, но это потребовало бы очень дорогих сканирований.
Поэтому я добавил третий GSI:
Этот новый GSIслужит для проецирования атрибута "own_to_project" отношения задач в качестве первичного ключа, поэтому я могу легко удалить всю информацию о проекте с помощью 3 запросов.
Могу ли я сделать это более эффективно?Используя меньше запросов?Меньше GSI?