Одним из преимуществ MongoDB является его способность встраивать документы.
Вполне разумно, чтобы документы в вашей коллекции посещений содержали ключевое слово и вложенные документы страницы.
Основное правило - встраивать документы для скорости, нормализовать документы для согласованности.
Если вы встраиваете документы Keyword и Page в ваш документ Visit, ваше приложение должно будет сделать только один запрос, чтобы получить всю необходимую информацию. (Скорость)
Однако недостатком является то, что если информация о ключевом слове и / или странице обновляется, она должна будет обновляться в каждом другом документе посещения, где она появляется. Если много разных документов Visit будут полагаться на одно и то же ключевое слово и документы страницы, может быть лучше хранить их в отдельной коллекции, особенно если они будут часто меняться. (Консистенция)
Это, конечно, обобщение, и в конечном итоге вам, разработчику приложения, решать, что лучше всего подойдет для вашей уникальной ситуации. В документе Mongo, озаглавленном «Дизайн схемы», содержится дополнительная информация о внедрении и связывании.
http://www.mongodb.org/display/DOCS/Schema+Design
Вы также можете найти полезной статью «Моделирование данных и Rails MongoDB»:
http://www.mongodb.org/display/DOCS/MongoDB+Data+Modeling+and+Rails
Пример приведен в Rails, но теория дизайна документа применима к любому языку.
Удачи!