O design da BigTable rejeita muitas das filosofias dos modelos relacionais padrão, preferindo explicitamente a desnormalização a uma grande variedade de pequenas tabelas.
Uma das áreas maiores em que isso é um problema está na modelagem de muitas e muitas junções.
Uma maneira de modelar essas junções é violar a primeira forma normal e colocar todos os dados interessantes em um db.ListProperty (). Embora isso possa ser pesquisado em uma consulta, ainda não explorei as implicações de desempenho de pesquisar em uma lista em vez de puxar outra tabela.
Como as junções não são possíveis, é possível vincular tabelas por meio de RelationshipProperties. Portanto, com esforço suficiente, a tabela de interseção padrão (uma tabela com uma chave primária conjunta que faz referência a ambas as tabelas pai) pode ser criada. Alguém já explorou os resultados de desempenho das várias implementações?
-Editar-
Embora a Lista de Chaves sugerida na documentação seja realmente uma maneira de fazê-lo, estou interessado nas taxas de desempenho e anomalia dessa e de outras implementações. Existe utilidade na criação de listas mútuas de chaves? O esforço envolvido nas repetidas vale o preço? Tem algum jeito melhor de fazer isso?
fonte