[firebase-br] Auto relacionamento m:n

Douglas Tosi douglasht em gmail.com
Sex Maio 22 17:18:29 -03 2009


2009/5/22 Fábio Marques <fmarques em nautilus.com.br>:
>   Logo, não trata-se de um auto relacionamento trivialmente visto por ai, do
> tipo, funcionário/gerente, onde temos a hierarquia que diferencia as tuplas
> envolvidas. Então poderia ter-se a seguinte modelagem:
>
>         Usuario (_id_, nome);
>         Usuario_has_Usuario(usuario1, usuario2, aceitacao);

Opção:
Na sua usuario_has_usuario, você fixa quem é o amigo de origem do
pedido e quem é o de destino.
Usuario_has_Usuario(usuario_origem, usuario_destino, aceitacao);

Uma relação de amizade entre joão e pedro ficaria:
joão, pedro, sim
pedro, joão, sim

Veja que você teria dois registros. Um que vai outro que vem, por assim dizer.
Isto permite que você pesquise sempre no campo origem e use um índice
com eficiência.

É uma troca. Seu sistema fica mais simples e talvez mais rápido, mas
consome mais espaço.
Põe na balança as duas (ou mais) soluções e escolhe qual está de
acordo com as necessidades e restrições do seu projeto.

hth,
-- 
Douglas Tosi
www.sinatica.com




Mais detalhes sobre a lista de discussão lista