Две вещи, которые показались мне немного странными:
Job Application - это ресурс, на котором у нас будет большая часть транзакционных данных, этот ресурс будет быстро меняться, так как Job Application будет проходить через ибудет охватывать несколько этапов деятельности по подбору персонала), остальные ресурсы в основном предназначены только для чтения.
Вам известно, что MongoDB не поддерживает транзакции в обычном смысле (охватывающие несколько документов)?Это не такая большая проблема, поскольку моделирование данных отличается от реляционных баз данных, и вы можете реализовать множество функций с помощью одного документа (который в значительной степени транзакционный).
Чтобы получить преимуществополнотекстового поиска, предоставляемого MongoDB
MongoDB в настоящее время не поддерживает полнотекстовый поиск - его часто запрашивают и планируют, но это займет некоторое время: https://jira.mongodb.org/browse/SERVER-380
ОднакоMorphia поддерживает регулярные выражения, и вы можете токенизировать / stem вручную.
Хотя вы можете легко использовать MongoDB для этого, я не вижу причин, по которым вы не могли бы использовать MySQL.
Для моделирования я бы начал с простого подхода (компания-пользователь, компания, объявление о вакансии, кандидат, приложение) и начал бы оптимизировать, только если у вас действительно есть проблемы с производительностью.Кэширование должно помочь вам в вашем сценарии.