Mysql
 sql >> Database >  >> RDS >> Mysql

Devo usare NULL o una stringa vuota per rappresentare nessun dato nella colonna della tabella?

Non sono assolutamente d'accordo con tutti coloro che dicono di usare incondizionatamente NULL. Consentire a una colonna di essere NULL introduce uno stato aggiuntivo che non avresti se imposti la colonna come NOT NULL. Non eseguire questa operazione se non è necessario lo stato aggiuntivo. Cioè, se non riesci a trovare una differenza tra il significato di stringa vuota e il significato di null, imposta la colonna come NOT NULL e usa la stringa vuota per rappresentare il vuoto. Rappresentare la stessa cosa in due modi diversi è una cattiva idea.

La maggior parte delle persone che ti hanno detto di usare NULL ha anche fornito un esempio in cui NULL significherebbe qualcosa di diverso da una stringa vuota. E in questi esempi, hanno ragione.

Il più delle volte, tuttavia, NULL è uno stato aggiuntivo inutile che costringe i programmatori a dover gestire più casi. Come altri hanno già detto, Oracle non consente l'esistenza di questo stato aggiuntivo perché tratta NULL e stringa vuota come la stessa cosa (è impossibile memorizzare una stringa vuota in una colonna che non consente null in Oracle).