Я создаю сайт, где пользователи могут создавать задачи для других пользователей в своей группе. Эти другие пользователи могут затем ответить с ответами на эту задачу. Моей первой идеей было создать одну коллекцию для каждого типа:
- Коллекция пользователей с документами, которые содержат идентификатор пользователя и идентификатор группы.
- Коллекция задач с документами, которые содержит идентификатор задачи, идентификатор пользователя, который его создал, и идентификатор группы.
- Коллекция ответов с документами, которые содержат идентификатор ответа, идентификатор пользователя, который его создал, и идентификатор задачи, с которой он связан.
При таком подходе все было бы отдельно. Проблема в том, что если мне нужно получить каждый ответ для задачи для каждого пользователя в группе. Мне нужно было бы go пройти через всех пользователей и найти тех, кто входит в группу, затем мне нужно go просмотреть все ответы и найти ответы, которые относятся к задаче A, а B созданы пользователем group.
Другой подход состоит в том, чтобы иметь одну большую коллекцию, содержащую документ для каждой группы, в каждой из которых содержатся все пользователи, в каждой из которых содержатся все их задачи, в каждой из которых содержатся все ответы на задачу. Но мне не нравится этот вложенный подход, потому что я не мог легко получить все задачи. Я также не мог позволить, чтобы пользователи были в двух группах.
Так что в основном один модальный или несколько модальных. Каков наилучший подход здесь?