2011/12/15 Edson neto <[email protected]>

> Bom dia pessoal,
>
> Tenho um software que faz a leitura de placas de veiculos. Essa informação
> é armazenada em uma tabela de passagens de veículos. Porém para cada placa
> lida o software pode trazer n outras leituras chamadas de apelidos. Esses
> apelidos podem ser consultados por parte de seu conteúdo. Ex. (placalida
> 'AAA1111') apelidos ('AA111','AGUA','ABC11'); o exemplo é hipotético.
> O problema é que o apelido pode ser pesquisado por parte do seu conteúdo.
> ex: 11 ou GUA.
> Qual seria uma boa maneira de armazenar os apelidos?
> Um campo text com todos os apelidos concatenados?
> Um campo text[]?
> Uma outra tabela com relacionamento com a tabela de passagens de veiculos?
> Um campo tsvector?
>
> Fiz uns testes e não conseguir reproduzir uma pesquisa do tipo like '%11'
> ou like '%11%' utilizando tsvector nem text[]. No tsvector o maximo que
> consegui foi '11:*' que represente like '11%' e no text[] não consegui
> realizar pesquisa por parte da palavra.
> Se ha alguma forma de fazer pesquisas do tipo like '%valor' poderiam me
> explicar.
>
> obrigado pela ajuda
>
> abraços
>
> Edson Souza
>
>

Olá Edson,

Observe que se você utilizar consultas utilizando o "coringa" (%) antes da
expressão,
a consulta não irá utilizar indices. por exemplo.:

where apelido like 'AA1%'   -- utiliza índice
where apelido like '%AA1'   -- não utiliza.

Tendo isso em mente, e sabendo que o tsvector é mais usado para realizar
busca de texto,
salvo engano a mesma solução não seria muito adequada ao seu problema.

Particularmente eu prefereria manter um modelo simples, com uma tabela com
as placas lidas,
e outra tabela contendo os apelidos (um por linha). cardinalidade 1 pra N.
usando varchar mesmo.
crie os índices para chaves, placas e apelidos e ficará tudo bem.





-- 

Vinícius Abrahão Bazana Schmidt
Desenvolvimento
Dextra Sistemas
www.dextra.com.br
+55 19 3256-6722 Ramal 246

Este email é confidencial. Mais informações em:
This message is confidential. More information at:
www.dextra.com.br/confidencial.htm


--
vi[nnix]™
aka: Vinícius Abrahão Bazana Schmidt
vischmidt.wordpress.com
twitter.com/vischmidt
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a