У меня есть база данных 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() предпочтительным методом для выполнения того, что я пытаюсь сделать? Есть ли лучший/другой выход?
Будет ли динамическое создание эммита на основе документа просто напрашиваться на неприятности в случае поступления какого-то гигантского документа и создания огромных требований к хранилищу?
По сути, есть ли момент, когда я должен просто остановить это безумие?