Jump to content


Photo

Problemas Com Relacionamento


  • Faça o login para participar
4 replies to this topic

#1 Supertigato

Supertigato

    Novato no fórum

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

Posted 19/10/2010, 15:05

Olá pessoal,

Eu tenho um sistema de pageviews (ASP) da Intranet da empresa que trampo rodando um banco Access. Nesse banco, tenho duas tabelas:
- Tabela Dados (onde registra a URL acessada, hora, data e IP [quabrado em 4 partes])
- Tabela área (área e IP início e Ip fim [ambos quebrados em 4 partes], pois com ele eu pego a range de ip das áreas. Ex> 192.168.1.1 até 192.168.1.54 - Financeiro, e assim por diantes

Tenho uma consulta que faz o vínculo verificando de acordo com a tabela área o conteúdo que a pessoa acessou. Código SQL:

SELECT dados.*, ipvlan.area
FROM dados LEFT JOIN ipvlan ON (dados.ip1>=ipvlan.ipi1) AND (dados.ip1<=ipvlan.ipf1) AND (dados.ip2>=ipvlan.ipi2) AND (dados.ip2<=ipvlan.ipf2) AND (dados.ip3>=ipvlan.ipi3) AND (dados.ip3<=ipvlan.ipf3) AND (dados.ip4>=ipvlan.ipi4) AND (dados.ip4<=ipvlan.ipf4) AND (dados.dabre>=ipvlan.data_at);

Problema:
Vamos supor que eu tenho a range que eu dei o exemplo: 192.168.1.1 até 192.168.1.54 (área Financeira), mas tenho uma máquina dentro dessa range (192.168.1.14) que não é dá área financeira, e sim da área de Compras. Quando eu faço a consulta, sempre nos acessos aparece vez sim de uma área, vez sim de outra. O que eu posso melhorar no código para corrigir essa questão? Obrigado.

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 19/10/2010, 19:06

Assim não dá pra usar ranges, né. Melhor você ter uma tabela associando cada IP a uma área. Fica mais fácil de cuidar das exceções, e enxuga seu SQL.

#3 Supertigato

Supertigato

    Novato no fórum

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

Posted 20/10/2010, 09:19

O problema é que tenho algo em torno de 2000 máquina alocadas e tabular isso é complicado.

Assim não dá pra usar ranges, né. Melhor você ter uma tabela associando cada IP a uma área. Fica mais fácil de cuidar das exceções, e enxuga seu SQL.



#4 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/10/2010, 09:48

Na mão pode ser. Mas se você fizer um código pra cadastrar você, rapidinho resolve.

#5 Supertigato

Supertigato

    Novato no fórum

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

Posted 28/10/2010, 16:01

Na mão pode ser. Mas se você fizer um código pra cadastrar você, rapidinho resolve.


Realmente fiz assim, ficou mais lenta a busca, mas ficou mais controlável.

Obrigado pela ajuda.

Podem fechar o tópico




0 user(s) are reading this topic

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

IPB Skin By Virteq