Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maneju

Modelagem de Dados

Recommended Posts

Olá a todos!Estou desenvolvendo um software aonde os clientes do cadastro indicam 5 novos clientes, este 5 masi indicam mais cinco e assim sucessivamente. O problema é que a amarração disso pode ficar enorme. Na primeira indicação são 5, depois, 125, depois 625, e aí vai...Gostaria de uma ajuda da melhor maneira para modelar o Banco de Dados de maneira que me facilite na hora de consultas.Hoje eu guardo um registro com o código do cliente com o código do cliente que indicou. Suponha que eu sou o cliente um e indiquei os clientes 2,3,4,5 e 6. Na minha tabela terei 5 registros como mostrado abaixo:1.21.31.41.51.6se o cliente 2 indicar masi 5 (suponha 7,8,9,10 e 11), ficará assim1.21.31.41.51.62.72.82.92.102.11Deu para perceber que isto ficará enorme mas, não estou vendo uma outra forma de fazer isto.Grato!Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra... uma x fiz algo parecido,, so q naum lembro mto bm como foi... parec q foi o seguintevocê faria um campo pro Cliente e outro campo pra ClienteIndicadono campo ClienteIndicado seria um campoi do tipow memorando,,, nas consultas você pegaria tipow cliente nro 4 e Clientes indicados você pegava por linhas dentro d uma celula so...sendo assim pouparia akela bagunca com mtas linhas no banco... mais em questao de tamanho do banco naum muda mto naum...pena eu naum lembrar direito... + ta ai.... beleza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você tb poderia simplismente criar mais um campo na própria tabela de cliente referência o cliente que indicou o mesmo. Tipo, na hora que estaria cadastrando o novo cliente, caso ele tenha sido indicado por alguém, apenas preencheria este campo da tabela, depois em consultas e relatórios seria um select sobre a mesma tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.O problema é que eu preciso saber os clientes indicados diretamente e os indicados indiretamente. Suponha que eu seja o cliente 1 e indique os cliente 2,3,4,5 e 6. Até aí tudo bem, estes 5 estão no meu primeiro nível de indicação. No segundo nível de indicação, vem mais 25 clientes, ou seja, 5 indicações (indiretas)dos cliente2, 5 do 3, 5 do 4, 5 do 5 e 5 do 6. Funciona como uma Pirâmide, o problema é que a cada nível, os clientes são multiplicados por 5, assimNível 1 = 5Nível 2 = 25Nível 3 = 125Nível 4 = 625Nível 5 = 3125Nível 6 = 15625Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... Eu continuo pensando que um único campo iria servir, pois você pode buscar sempre o registro em forma de cascata, tipo:Cod. Cadastro - Cód. Indicacao10 - 111 - 113 - 220 - 223 - 154 - 10Pegando o exemplo do "Cod. Cadastro" = 54, nele você acha o "Cód. Indicacao" = 10, agora se pega o cod 10 se faz nova consulta e se encontra o 1, seria uma coisa que iria dar um pouco de trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, é desta forma que faço hoje. Mas veja que cada clientye pode indicar outros 5. Estes 5 mais 5 (já contam 25), os 25 + 5 cada )mais 125). Terei que fazer 125 SQLs?Por isso que estou procurando uma maneira de melhorar a Modelagem do Banco ou inventar uma SQL que englobe tudo.ManoelO sistema é uma pirâmide de ponta cabeça. Quem está na parte de baixo, nao está limitado somente nas 5 indicações que ele mes mas, até o topo da Pirâmide.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato. Não há limite para a pesquisa. Pego a partir dos 5 que indiquei e vou pesquisando nas indicações posteriores.Ps. desde a origem não. Da origem quando quiser saber a partir do primeiro cliente que entrou no sistema... Pode ser a partir de qual parte pois, todos partirão de 5 indicados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é desta forma mesmo. Inclusive no modelo que voce colocou, o "TESTE2" poderia estar na "árvore" de clientes do "TESTE1".Não vou precisar de um relatório que mostre todas as árvores. Vou usar sempre um cliente por vez, não importando em que parte da árvore ele esteja mas, sempre a partir dele, monto a árvore referente a ele.Grato pela atenção!Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - TESTE1 2 - TESTE2 3 - TESTE3 4 - TESTE4 5 - TESTE5 6 - TESTE6 2 - TESTE2 7 - TESTE7 8 - TESTE8 9 - TESTE9 10 - TESTE10 11 - TESTE11 3 - TESTE3 12 - TESTE12 13 - TESTE13 14 - TESTE14 15 - TESTE15 16 - TESTE16 2 - TESTE2 7 - TESTE7 8 - TESTE8 9 - TESTE9 10 - TESTE10 11 - TESTE11 3 - TESTE3 12 - TESTE12 13 - TESTE13 14 - TESTE14 15 - TESTE15 16 - TESTE16

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz algumas pesquisas em árvore binária, busca em largura, busca em profundidade e ainda não consegui uma solução satisfatória. se alguém tiver alguma luz, por favor poste pata mim.Obrigado!Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.