Em 20 de julho de 2013 20:30, Danilo Silva
<danilo.dsg.go...@gmail.com> escreveu:
> Pessoal,
>
> Tenho uma tabela de cadastro de faixas de ceps
> (cliente,cepinicial,cepfinal), onde não é permitido duplicidade de faixas
> para o mesmo cliente e que uma faixa fique dentro de outra, exemplo:
>
> Correto
> codigo | cliente | cepinicial | cepfinal
> --------+---------+------------+----------
>       1 |       1 | 01000000   | 01599999
>       2 |       1 | 02000000   | 02999999
>       3 |       1 | 03000000   | 04999999
> (3 rows)
>
>
> Errado
> codigo | cliente | cepinicial | cepfinal
> --------+---------+------------+----------
>       1 |       1 | 01000000   | 01599999
>       2 |       1 | 02000000   | 02999999
>       3 |       1 | 02500000   | 04999999
> (3 rows)
>
>
> Errado pois o cep 02500000 já existe dentro da faixa anterior. Atualmente eu
> bloqueio o insert na aplicação e criei uma regra com *DO INSTEAD NOTHING*
> para evitar a duplicidade. Qual a melhor forma de evitar esses tipos de
> duplicidade, ou está certo da forma que está?


Bom mesmo para resolver este problema seria usar range datatype. Ele
já faz isso automaticamente para você:
http://www.postgresql.org/docs/current/static/rangetypes.html

>
> []s
> Danilo
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Atenciosamente,
Fábio Telles Rodriguez
blog: http://savepoint.blog.br
e-mail / gtalk / MSN: fabio.tel...@gmail.com
Skype: fabio_telles

Timbira - A empresa brasileira de Postgres
http://www.timbira.com.br
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to