Usando PHP Filter Extension para Validação

Standard
Filter extension faz parte da distribuição oficial do PHP 5.2.0 e oferece aos desenvolvedores uma maneira fácil de validar os dados de entrada do usuário em seus sistemas.

Abaixo segue alguns exemplos de validações com esta extensão:

Validar e-mail:

$email = "teste.teste.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ echo "E-mail válido "; }

else { echo "E-mail inválido!"; }

Validar uma string com expressão regular:

$string = "' OR ''='";
if (filter_var($string, FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => "/^[a-zA-Z0-9]+$/"))))
{ echo "String válida"; }

else { echo "String inválida"; }

Validar um número do tipo inteiro idade dentro de um intervalo:

$idade=10;

if (filter_var($idade, FILTER_VALIDATE_INT, array('options' => array('min_range' => 18, 'max_range' => 100))))
{ echo "Idade dentro do intervalo"; }

else { echo "Idade fora do intervalo!"; }

Indice Parcial no Postgresql

Standard

Segue abaixo um exemplo de como trabalhar com índices parciais no postgresql, para saber mais sobre o assunto clique no link que segue:

http://pgdocptbr.sourceforge.net/pg80/indexes-partial.html

EXEMPLO:

-- Criar Table: contato

CREATE TABLE contato
(
id bigserial NOT NULL,
datanascimento date,
email character varying(255),
nome character varying(255),
CONSTRAINT contato_pkey PRIMARY KEY (id),
CONSTRAINT contato_email_key UNIQUE (email)
)
WITH (
OIDS=FALSE
);
ALTER TABLE contato OWNER TO postgres;

-- Criando indice parcial (só valida a unicidade do campo e-mail se o mesmo for diferente de null)
CREATE INDEX email_ix ON contato (email)
WHERE email IS NOT NULL;

-- O Comando abaixo pode ser executada várias vezes sem gerar erro 
INSERT INTO contato (datanascimento,email,nome) values (now(),null,'nome')

-- O Comando abaixo gera o seguinte erro quando executado mais de uma vez:
-- ERRO:  duplicar valor da chave viola a restrição de unicidade "contato_email_key"
INSERT INTO contato (datanascimento,email,nome) values (now(),'teste@teste.com.br','nome')

-- Ver resultado
SELECT * FROM contato

1 2010-12-15 null nome
2 2010-12-15 null nome
3 2010-12-15 teste@teste.com.br nome