Mam bazę danych CouchDB (powiemy, że zawiera ona dane związane z kartą czasową projektu: kod projektu, nazwisko osoby, stanowisko pracy, zadanie, datę, przepracowane godziny, stawkę za rachunki itp.). Chcę utworzyć podsumowujące widoki projektu w ciągu dnia ... lub według osoby, zadania lub według tytułu lub dowolnego pojedynczego atrybutu.W CouchDB, czy funkcja wyświetlania wielu emulatorów do emulowania zapytania typu ad hoc wysadzić w powietrze mój rozmiar kanapy?
Obawiam się, że zmierzam w kierunku niezrównoważonej ścieżki i że rozmiar mojej bazy danych może okazać się większy niż powinien.
Utworzono widok z funkcją mapy, która emituje każdy dokument kilka razy, raz dla każdego atrybutu. To działa. Ale czy to kiedykolwiek osiągnie punkt końcowy, w którym należy się zatrzymać?
mam wiele emituje:
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);
Wtedy zawsze kwerendy z kluczem startu/końca [projektu], aby [projekt, {}]
Czy moja baza ostatecznie po prostu tak ogromne co sprawia, że dodawanie nowych danych jest zbyt kosztowne? Czy multi-emit() jest preferowaną metodą robienia tego, co próbuję zrobić? Czy istnieje lepsze/inne wyjście?
Czy tworzenie dynamicznych emisji w oparciu o dokument wymagałoby tylko kłopotów w przypadku pojawienia się gigantycznego dokumentu i stworzenia ogromnych wymagań dotyczących pamięci masowej?
Zasadniczo, czy jest jakiś punkt, w którym powinienem po prostu zatrzymać szaleństwo?