Projekt BigTable odrzuca wiele filozofii standardowych modeli relacyjnych, wyraźnie preferując denormalizację od wielu małych tabel.
Jednym z większych obszarów, w których jest to problem, jest modelowanie połączeń wielu do wielu.
Jednym ze sposobów modelowania tych złączeń jest naruszenie pierwszej normalnej formy i umieszczenie wszystkich interesujących danych w db.ListProperty (). Chociaż ma to możliwość wyszukiwania za pomocą zapytania, nie zbadałem jeszcze wpływu na wydajność wyszukiwania listy w porównaniu do wyciągania innej tabeli.
Jak łączy nie są możliwe, to jest możliwe do łącza tabel poprzez RelationshipProperties. Dlatego przy wystarczającym wysiłku można utworzyć standardową tabelę przecięć (tabelę ze wspólnym kluczem podstawowym, która odwołuje się do obu tabel nadrzędnych). Czy ktoś badał wyniki wydajności różnych implementacji?
-Edytować-
Chociaż lista kluczy sugerowana w dokumentacji jest rzeczywiście jednym ze sposobów, aby to zrobić, jestem zainteresowana wydajnością i szybkościami anomalii tej i innych implementacji. Czy istnieje narzędzie do tworzenia wzajemnych list kluczy? Czy wysiłek związany z powtarzaniem staje się wart swojej ceny? Czy jest na to lepszy sposób?
źródło