sql >> Database >  >> RDS >> Mysql

Moet ik NULL of een lege tekenreeks gebruiken om geen gegevens in de tabelkolom weer te geven?

Ik ben het sterk oneens met iedereen die zegt om onvoorwaardelijk NULL te gebruiken. Door een kolom NULL te laten zijn, wordt een extra status geïntroduceerd die u niet zou hebben als u de kolom instelt als NOT NULL. Doe dit niet als u de aanvullende status niet nodig heeft. Dat wil zeggen, als je geen verschil kunt bedenken tussen de betekenis van een lege tekenreeks en de betekenis van null, stel dan de kolom in als NIET NULL en gebruik een lege tekenreeks om leeg weer te geven. Hetzelfde op twee verschillende manieren voorstellen is een slecht idee.

De meeste mensen die je vertelden om NULL te gebruiken, gaven ook een voorbeeld waarbij NULL iets anders zou betekenen dan een lege string. En in die voorbeelden hebben ze gelijk.

Meestal is NULL echter een onnodige extra status die programmeurs alleen maar dwingt om meer zaken af ​​te handelen. Zoals anderen al hebben vermeld, staat Oracle deze extra status niet toe omdat het NULL en lege tekenreeks als hetzelfde behandelt (het is onmogelijk om een ​​lege tekenreeks op te slaan in een kolom die geen null toestaat in Oracle).



  1. Recursieve mysql selecteren?

  2. de doeldatabaseversie instellen voor mysql workbench-migratie

  3. Salesforce-gegevens bijwerken met een SQL Server-cursor

  4. EF6 MySql:Update-Database -Script genereert SQL zonder puntkomma