Я разрабатываю приложение с двумя типами данных:
1) Профиль пользователя — имя пользователя, электронная почта, идентификатор пользователя, токены доступа, идентификаторы сеансов, AvatarUrl и т. д. Для каждого пользователя эти данные будут составлять около 20 КБ, а для активного пользователя данные будут считываться 100 раз/день и записываться до 5 раз/день. . Я думаю об использовании ObjectRocket (MongoDB) или Cloudant (CouchDB с кластеризацией). такое количество редакций документов очень быстро исчерпает дисковое пространство и в целом не будет работать так же хорошо, как MongoDB. Я склоняюсь к MongoDB. Любые предложения для этого типа данных?
2) Транзакции между пользователями — Пользователь А отправляет пользователю Б 8 баллов — проверьте баланс баллов Пользователя А, если > 8, дебетуйте Пользователя А и зачислите Пользователю Б. Каждая транзакция будет иметь размер около 2 КБ и, скорее всего, никогда не будет обновлена или удалена (бухгалтеры не используют ластики). Для этого я думаю об использовании CouchDB (Cloudant) с представлениями Map/Reduce, где представления будут отслеживать балансы пользователей. Эти данные, конечно, чрезвычайно важны для целостности приложения, и я думаю, что Couch позволит мне лучше спать по ночам (особенно с репликацией master/master, дизайном только при сбоях и мульти-географической избыточностью Cloudant). Любые другие предложения для этого типа данных?
В общем, хотелось бы для простоты использовать один тип БД, НО кажется, что иногда для постройки дома нужен молоток и отвертка. Имеет ли смысл использовать Mongo (ObjectRocket) для типа данных №1 и Couch (Cloudant) для типа данных №2?