2010-11-22 4 views
2

Я нахожусь в середине разработки приложения, которое собирает твиты, статусы Facebook и фотографии Facebook для пользователя. В настоящее время пользователь точно определяет, когда и когда хочет, чтобы этот урожай произошел, и паук извлекает данные за этот период. Когда и где хранится в MySQL db, и мой план состоял в том, чтобы хранить все твиты, статусные и метаданные фотографий в MongoDB (с фактическими изображениями на S3).MongoDB Collections

Я думал, что просто создам одну коллекцию для каждого из периодов, которые пользователь хочет собрать, а затем сохранит все твиты и т. Д. Из этого периода в этой конкретной коллекции.

Это похоже на разумный подход?

+0

Почему именно вы думаете, что было бы неплохо хранить их в разных коллекциях ... Я немного смущен? Для этого вам не нужно больше одной коллекции, но, может быть, вы можете объяснить немного больше? Кроме того, (бесстыдный плагин) вот небольшой учебник Twitter/MongoDB, если это полезно: http://learnmongo.com/posts/mongodb-php-twitter-part-1/ – 2010-11-23 03:27:51

+0

Я думал, что мне будет легче вытащить все соответствующие материалы для этого конкретного события? Вместо того, чтобы искать через сотни тысяч документов для тех, кого я хочу? – christophmccann 2010-11-23 11:21:55

ответ

4

Это похоже на разумный подход?

Какой запрос пользователя # 1? Это "найти деятельность по периодам"? Если пользователи только когда-либо хотят «найти по периоду», тогда это имеет смысл.

Однако, если пользователи хотят получить накопленное представление, теперь вам нужно собрать историю для пользователя и объединить ее для отображения.

Если вы хотите как «по этому периоду», так и «накопленный», я предлагаю просто набивать все данные в один пользовательский объект. Легко пометить отдельные действия «прогон урожая» и «метку времени».

Mongo Details: MongoDB может обрабатывать отдельные документы объемом до 4 МБ. Самые последние версии - до 8 или 16 МБ. Если вы используете это пространство только для текста, пожалуйста, поймите, что это много текста. Копия войны & мир чуть более 3 МБ. Итак, вы говорите о сотнях страниц текста в 4 МБ. С 8 или 16 МБ вы, вероятно, можете хранить обновления статуса & твитов в течение многих лет на большинстве людей.

Обратите внимание, что MongoDB имеет GridFS для хранения двоичных данных (например, файлы изображений), поэтому вы обычно храните только указатели на них в документе пользователя.