25/05/2010

Projeto de Interface com Usuário para Programadores

Navegando aleatoriamente pela internet me deparei com este excelente artigo sobre projeto de interface com usuário para programadores.

Por Joel Spolsky
Traduzido por Rosana de Oliveira

Vale a pena conferir.

Projeto de Interface com Usuário para Programadores



14/05/2010

Consulta MySQL

Aqui está uma coisa que me passou despercebido por um longo tempo.

Em uma consulta aonde eu preciso consultar 2 valores diferentes em uma mesma tabela, sempre recorria a uma sub consulta (SELECT dentro de SELECT). Até que, acidentalmente, descobri que era muito mais simples, e estava sempre ali na minha cara.

Para ilustrar a idéia vamos montar uma situação fictícia:

Em uma empresa altamente setorizada você tem um diretor e um vice diretor para cada setor, entre tanto, ambos são funcionários e estão cadastrados na mesma tabela Pessoas. E uma tabela de setores só contem o ID de cada um e é necessário exibir o nome dos 2 indivíduos em uma lista.

Ex. com sub consulta.



SELECT un.id,
f1.nome AS diretor,
(SELECT nome FROM pessoas WHERE id = un.pessoa) AS vice
FROM unidades AS un
LEFT JOIN pessoas AS f1 ON f1.id = un.pessoa

E a consulta como devia ser:

SELECT un.id,
f1.nome diretor,
f2.nome vice
FROM unidades AS un
LEFT JOIN pessoas f1 ON f1.id = un.pessoa
LEFT JOIN pessoas f2 ON f2.id = un.diretor

Não entrando em questão de performance (que deve levar alguns mili segundos de vantagem), a segunda é bem mais "limpa"

Simples! não é?