Будет ли в CouchDB функция карты с несколькими генерациями для эмуляции специального типа запроса увеличивать размер моего Couch?

У меня есть база данных CouchDB (мы скажем, что она содержит данные, связанные с картой рабочего времени проекта: код проекта, человека, должность человека, задачу, дату, отработанные часы, его ставку счета, и т.д.). Я хочу создать сводные представления проекта по дням... или по людям, или по задачам, или по названию, или по любому отдельному атрибуту.

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

Я создал представление с функцией карты, которая создает каждый документ несколько раз, по одному разу для каждого атрибута. Это работает.Но достигает ли это когда-нибудь конечной точки, когда вы должны остановиться?

У меня есть несколько эмитов:

emit([doc.project, 'day', doc.day], doc);
emit([doc.project, 'month', doc.month], doc);
emit([doc.project, 'person', doc.person], doc);
emit([doc.project, 'job title', doc.persons-job-title], doc);
emit([doc.project, 'task', doc.task], doc);

Затем всегда запрашивайте с ключом начала/конца [project, ] to [project, , {}]

Будет ли моя база данных в конечном итоге просто настолько огромной, что сделает ее непомерно дорогой добавить какие-то новые данные? Является ли multi-emit() предпочтительным методом для выполнения того, что я пытаюсь сделать? Есть ли лучший/другой выход?

Будет ли динамическое создание эммита на основе документа просто напрашиваться на неприятности в случае поступления какого-то гигантского документа и создания огромных требований к хранилищу?

По сути, есть ли момент, когда я должен просто остановить это безумие?

7
задан user791770 7 March 2012 в 18:13
поделиться