Sobre uso de chave estrangeiro

Boa noite meu povo,

Gostaria de saber se evitar o uso de chave estrangeira é uma boa pratica e ajuda a melhorar o desempenho do sistema.

Obrigado,

Chave estrangeira é uma necessidade acho quase impossivel de não utilizar ela.

A maioria dos SGBD quando vc executa uma query mostra o tempo que ela demorou para retornar o resultado, faz um teste.

Voce pode colocar todos os dados em uma tabela só mas isso tem que ser bem analizado.

Qual o banco que vc usa?

Estou analisando o SGBD. Eu ia usar o MySQL, mas vi que se tiver que instalar o software nas maquinas do cliente, entao ele é pago.

Pretendo utilizar o postgresql 9.2

é que eu vi um projeto grande que tem como banco o postgresql e a maioria das tabelas nao tem chave estrangeira. muitas tabelas do projeto possuem mais de 200 colunas.

[quote=PePeLeGaL]
é que eu vi um projeto grande que tem como banco o postgresql e a maioria das tabelas nao tem chave estrangeira. muitas tabelas do projeto possuem mais de 200 colunas.[/quote]
O fato de ser um projeto grande não quer dizer que as práticas adotadas por eles sejam as melhores. E pode ser que haja um motivo para a não presença de chaves estrangeiras.

O MySQL tem versões pagas e gratuitas (community edition), veja aqui: http://www.mysql.com/products/community/.

Imagino que a ausência de chaves estrangeiras não gere ganho de desempenho significativo. Em contrapartida, você perde a vantagem principal das chaves estrangeiras, que é a garantia da integridade dos relacionamentos entre as tabelas. Eu não vejo motivo para abrir mão disso em nome de uma suposta melhoria de desempenho, ainda mais quando a alteração de outras partes do banco pode garantir melhorias mais notáveis (como a adição de índices e a escolha de tipos apropriados para os campos).

Abraço.