Я делаю отношения со многими для многих с mongoDb и mongoose.js, я знаю, что есть много вариантов, моя ситуация такова:
У меня есть два документа, пользователь и проекты, у одного пользователя может быть много проектов, и у одного проекта может быть много пользователей, поэтому в моем случае у меня есть 4 варианта:
1 - массив id_user внутри документа проекта.
2 - массив id_project внутри пользовательского документа.
3 - массив id_user внутри документа проекта && & & Массив id_project внутри пользовательского документа.
4 - Третья таблица, отображающая отношения пользователя и проекта (например, реляционная база данных).
Параметры 1 и 2 недоступны, потому что, представьте себе в сценарии варианта 1, если я захочу найти все проекты у пользователя, мне придется искать этот идентификатор пользователя внутри каждого массива проектных документов пользователей ( пересечь этот массив в каждом проекте), это определенно не очень хороший подход.
Вариант 3 хорош, но мне нужно будет сделать какую-то транзакцию, чтобы гарантировать, что оба документа будут записаны, это не так уж плохо, потому что оба документа будут гораздо более читаемыми, чем написанными
Опция 4 проще, потому что когда я добавляю одного пользователя в проект, просто добавляю новый документ с обоими идентификаторами (это хорошее решение, я думаю, потому что мне не нужно заботиться о транзакции, это хорошо решение?)
Итак, какое лучшее решение?