Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Devo usar NULL ou uma string vazia para representar nenhum dado na coluna da tabela?


Eu discordo fortemente de todos que dizem usar NULL incondicionalmente. Permitir que uma coluna seja NULL introduz um estado adicional que você não teria se configurasse a coluna como NOT NULL. Não faça isso se você não precisar do estado adicional. Ou seja, se você não conseguir encontrar uma diferença entre o significado de string vazia e o significado de null, configure a coluna como NOT NULL e use string vazia para representar vazio. Representar a mesma coisa de duas maneiras diferentes é uma má ideia.

A maioria das pessoas que disseram para você usar NULL também deu um exemplo em que NULL significaria algo diferente de string vazia. E nesses exemplos, eles estão certos.

Na maioria das vezes, no entanto, NULL é um estado extra desnecessário que apenas força os programadores a lidar com mais casos. Como outros já mencionaram, o Oracle não permite que esse estado extra exista porque trata NULL e string vazia como a mesma coisa (é impossível armazenar uma string vazia em uma coluna que não permite null no Oracle).