Chciałam tylko opinii, a przynajmniej pewnej reguły, która jest lepsza w strukturze bazy danych dla CouchDB. Czy lepiej mieć wszystkie powiązane dane dotyczące przedmiotu w jednym dokumencie lub części wszystkich elementów w wielu dokumentach?Duży dokument a wiele dokumentów
Pozwól mi zilustrować, co mam na myśli, dając ci przykład. Aktualnie loguję 4 zdarzenia z naszego systemu, w odstępach 1-minutowych, pozwalając im wywoływać zdarzenia event_1, event_2, event_3 and even_4. Dane są przechowywane dla każdego z 4 zdarzeń, niezależnie od wartości (zawsze otrzymasz wartość, nawet jeśli wszystko jest w porządku).
Wariant 1: imprezy grupowe i dołączać nowe datownika/wartości do dokumentu ...
{
event_1: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
},
{
event_2: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
},
{
event_3: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
}
...etc
Opcja 2: przechowywać ogromną listę dokumentów z ostatnich wartości (co jest jak są one faktycznie dostarczane z systemu)?
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value }
}
},
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value }
}
},
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value }
}
}
...etc
obecnie używam 2nd opcji, ale po prostu ciekaw narodami opinie na temat tego, co byłoby uznane za najlepsze praktyki ... Zaczynam myśleć, że wariant 1 może być lepiej, jako droga Zgłaszam, wyniki są pogrupowane według zdarzenia (pokazane na wykresie liniowym każdego zdarzenia).
@phlogratos, dobry punkt! Nie myślałem o tym jeszcze ... – crawf
@phlogratos, aby wyjaśnić, CouchDB przechowuje tylko stare wersje dokumentu, aż do zagęszczania. –
+1. CouchDB, Chris Anderson, mówi: "CouchDB lubi wysokie listy, a nie fatalne listy". Wyobraź sobie swoje dokumenty w pliku tekstowym, jeden na linię. Posiadanie kilku bardzo dużych dokumentów stanowiłoby grubą listę. Posiadanie wielu bardzo małych dokumentów byłoby wysoką listą. – JasonSmith