[firebase-br] Pontuação por Niveis AJUDA

Eduardo C ecostas em gmail.com
Ter Maio 4 22:50:24 -03 2010


Na solução que sugeri o número de ascendentes é configurável, já que
você está usando como parte da chave o grau de proximidade entre os
nodos (pai, avô, bisavô, etc.). Assim, no problema apresentado, haverá
no máximo 5xN registros de relacionamento, com um processamento
adicional somente se desejarem passar para um grau de proximidade
diferente, por exemplo, para os 6 ascendentes imediatos. E com a
vantagem de um "acesso direto", pois não será necessário caminhar na
árvore.

Agora, concordo plenamente que colocar 5 campos de ascendentes no
registro principal, além de ir contra as regras de normalização,
criaria enormes problemas de desempenho nas mudanças de número de
ascendentes. Mas cada registro filho não precisaria ter o registro
pai, somente a chave para o mesmo. Já a manipulação dos dados, ou
seja, o SQL, seria no mínimo 5 vezes mais complicada.

Eduardo

Em 29 de abril de 2010 17:03, Rodrigo Teodoro
<teodoro_rodrigo em ig.com.br> escreveu:
> Ao meu ver criar um registro com 5 campos pode ser problema se você pensar
> que um cliente pode ter n filhos, netos etc...  O mais indicado é a árvore.
>
> Claro que para usar um registro com 5 campos, você terá que duplicar para
> cada novo filho o registro do cliente pai.
>
> Por exemplo em registro:
>
> +---------------------------+
> |CLIENTE|CLIENTE 2|CLIENTE 3|
> +---------------------------+
> |MARIA  |JOSE      | PEDRO  |
> |MARIA  |JOAQUIM   | CARLOS |
> |MARIA  | PEDRO    | NULL   |
> +---------------------------+
>
> Neste caso o ideal e ter um tabela para garantir o NxN no meio do caminho.
>
> Quando se pensa em duplicar em 100 cliente é tranqüilo, mas não é bacana, e
> se sua loja chegar a ter 10000 clientes pra cima, se relacionando?
>
> Talvez problemas de performance podem ocorrer.
>
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista