Jump to content


Photo

Ajuda na logica de pesquisa relacionada mysql


  • Faça o login para participar
1 reply to this topic

#1 Guilherme Luiz

Guilherme Luiz

    Normal

  • Usuários
  • 78 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 10/10/2016, 23:35

Olá pessoal,

Sei que tem diversos artigos que explicam como fazer consultas relacionadas numa única query, porem estou com dúvida na lógica da minha consulta... vamos lá.

Tenho um sistema onde existe um nível de acesso.

1 - Master
2 - Whitelabel
3 - Admin
4 - Subuser
5 - Afiliado

De acordo com este nível de acesso, quero criar um sistema da log de movimentação de saldo.
Seguindo essa ordem eu tenho a seguinte lógica:

O nível 1 visualiza toda a movimentação de todos os níveis, incluindo do próprio nível
O nível 2 visualiza tudo do nível 3, incluindo o próprio nível
O nível 3 visualiza tudo do nível 4, incluindo o próprio nível
O nível 4 visualiza somente sua movimentação.

Baseado nisso em minha tabela de log (que se chama saldo_log) eu terei uma coluna chamada de chave_especial_user para identificar de quem é aquele log.

Até aí tenho tudo ok pois consigo fazer com que cada um consiga visualizar o seu log.

Numa tabela chamada user_details eu tenho a coluna chave_especial_user para identificar de qual usuário são os detalhes cadastrados e também possuo uma coluna chamada chave_subuser que terá nela a chave_especial_user do usuário "chefe"

Por exemplo
Usuário com login nível 3 terá sua identificação na chave_especial_user e em chave_subuser terá a chave_especial_user de algum usuário nível 2

Portanto a relação da pesquisa, isso levando em consideração que eu seria um usuário nível 2 eu teria, talvez, a seguinte lógica de pesquisa:

Através da minha chave_especial_user (que está salva numa session) vou realizar uma pesquisa na tabela user_detail na coluna chave_subuser para puxar quais usuários possuem a minha chave_especial_user vinculada.

Tendo este resultado, ainda na tabela user_detail eu puxo a chave_especial_user destes meus sub-usuários para então consultar a tabela saldo_log através da coluna chave_especial_user.

E no resultado desta pesquisa, além de sair os meus logs, também terá que sair o log destes meus sub-usuarios numa única pesquisa.

É possível aplicar essa lógica numa única query com o INNER JOIN ou alguma outra técnica?
Não queria fazer do modo "tradicional" realizando uma pesquisa e a partir desta pesquisa, fazer outra pesquisa dentro do meu while... isso num determinado momento vai comer todo o processamento do meu BD.
just its a lie when the truth is found !

#2 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 06/11/2016, 06:52

Não sei se você já fez algum avanço nesta consulta mas penso que o mais correto (baseado no que entendi), seria você fazer uma comparação 

[...] chave_especial_user = $chave_especial 
AND chave_especial_user = $chave_especial + 1 

Visto que o nível atual pode ver 1 nível abaixo, bastaria ter apenas uma coluna na tabela indicando o nível de acesso e na consulta acrescido de 1.






0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq