Fiquei na dúvida se o mais correto seria a utilização de NUMBER ou BOOLEAN no campo 'PRIMEIRA_COMPRA', qual seria o mais recomendado no mercado?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Fiquei na dúvida se o mais correto seria a utilização de NUMBER ou BOOLEAN no campo 'PRIMEIRA_COMPRA', qual seria o mais recomendado no mercado?
Oi, Marcelo. Tudo bem com você?
A dúvida faz bastante sentido, principalmente porque PRIMEIRA_COMPRA representa uma informação lógica: saber se o cliente já realizou ou não a primeira compra. Na atividade, o campo foi definido como NUMBER(1) justamente por uma característica do Oracle apresentada no curso: ele não possui um tipo lógico nativo para representar diretamente valores true e false. Por isso, a proposta é usar 0 para falso e 1 para verdadeiro.
Em relação ao que é mais recomendado no mercado, isso depende do banco de dados utilizado. Em bancos que possuem um tipo booleano nativo, como PostgreSQL, utilizar BOOLEAN costuma ser uma opção natural para esse tipo de informação. Já no Oracle, a escolha pode variar conforme a versão e o contexto, mas na modelagem apresentada no curso, NUMBER(1) é uma forma de representar esse valor lógico. O importante é manter uma convenção clara para toda a aplicação, como 0 = não realizou e 1 = já realizou, evitando valores diferentes para representar a mesma situação.
Parabéns por levantar essa questão e compartilhar sua dúvida. Esse tipo de comparação entre tipos de dados ajuda bastante a entender as decisões de modelagem. Continue compartilhando suas dúvidas no fórum, que está à disposição.