Ho un database CouchDB (diremo che contiene i dati relativi ai tempi della scheda progetto: codice del progetto, persona, titolo di lavoro della persona, attività, data, ore lavorate, tasso di fatturazione, ecc.). Voglio creare viste riassuntive del progetto di giorno ... o per persona, per compito, per titolo o per ogni singolo attributo.In CouchDB, una funzione mappa multi-emit per emulare un tipo di query ad hoc esploderà le dimensioni del mio Couch?
Sono preoccupato per il fatto che sto seguendo un percorso insostenibile e che le dimensioni del mio database potrebbero diventare molto più grandi di quanto non sia necessario.
Ho creato una vista con una funzione mappa che emette ogni documento più volte, una volta per ogni attributo. Che funzioni. Ma arriva mai a un punto finale in cui dovresti fermarti?
ho più emette:
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);
Poi sempre interrogare con un tasto di avvio/fine del [progetto] per [progetto,, {}]
sarà la mia base di dati alla fine solo ottenere così enormi da rendere eccessivamente costoso aggiungere nuovi dati? Multi-emit() è il metodo preferito per fare ciò che sto cercando di fare? C'è un modo migliore/diverso là fuori?
La creazione dinamica dell'emit basata sul documento potrebbe essere un problema nel caso in cui si verificasse un documento gigante che crea enormi requisiti di archiviazione?
Fondamentalmente, c'è un punto in cui dovrei semplicemente fermare la follia?