Usar boolean ou não ?!

Olá pessoas!

Uma dúvida, estou fazendo um projeto de estudos, e estou na dúvida…

Vocês usam/recomendam, para um campo que só poderá ter dois valores (Sim/Não), usar boolean ou String de um caracter ?
O app é basicamente um CRUD, usando hibernate.

Obrigado

Douglas Rauber

Como o atributo só pode ter dois valores possívels, use boolean.

[]´s

[quote=davidbuzatto]Como o atributo só pode ter dois valores possívels, use boolean.

[]´s[/quote]

Com certeza boolean, quando você indica para o banco que vai usar boolean vc preprara ele pra receber apenas 2 tipos de valores diferentes, já um caracter pode receber um pouco mais, pense nisso…

Em bancos de dados, às vezes há um tipo de dados especial só para booleanos.
Se esse tipo não existir, veja qual é a tradução que seu dialeto do Hibernate faz - por exemplo, o Hibernate poderia usar uma coluna CHAR(1) com o valor “Y” ou “N”, ou um SMALLINT com o valor “1” ou “0”.
Veja a documentação do dialeto do Hibernate para o seu banco.
Uma forma simples de determinar isso é fazer com que o Hibernate crie uma tabela para você, e ver qual o mapeamento que ele fez.

[quote=entanglement]Em bancos de dados, às vezes há um tipo de dados especial só para booleanos.
Se esse tipo não existir, veja qual é a tradução que seu dialeto do Hibernate faz - por exemplo, o Hibernate poderia usar uma coluna CHAR(1) com o valor “Y” ou “N”, ou um SMALLINT com o valor “1” ou “0”.
Veja a documentação do dialeto do Hibernate para o seu banco.
Uma forma simples de determinar isso é fazer com que o Hibernate crie uma tabela para você, e ver qual o mapeamento que ele fez.
[/quote]

Justamente por essas diferenças nos bancos que surgiu a dúvida…

Eu fiz um usando Mysql, por exemplo, e o campo criado foi do tipo BIT(1).

Vlw

Douglas

Outra coisa que você deve considerar é se no futuro esses dois valores não podem virar 3 ou mais… Dependendo do caso eu criaria um enum ou usuaria o tipo char mesmo, o que já prepararia a aplicação para manutenções futuras. O boolean é melhor usar quando você tem realmente um conceito de verdadeiro e falso.

Abraço!