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

Skal jeg bruge NULL eller en tom streng til at repræsentere ingen data i tabelkolonnen?

Jeg er meget uenig med alle, der siger, at man ubetinget skal bruge NULL. At tillade en kolonne at være NULL introducerer en ekstra tilstand, som du ikke ville have, hvis du sætter kolonnen op som IKKE NULL. Gør ikke dette, hvis du ikke har brug for den ekstra tilstand. Det vil sige, hvis du ikke kan finde på en forskel mellem betydningen af ​​tom streng og betydningen af ​​null, så sæt kolonnen op som NOT NULL og brug tom streng til at repræsentere tom. At repræsentere det samme på to forskellige måder er en dårlig idé.

De fleste af de mennesker, der fortalte dig at bruge NULL, gav også et eksempel, hvor NULL ville betyde noget andet end tom streng. Og i disse eksempler har de ret.

Det meste af tiden er NULL dog en unødvendig ekstra tilstand, der bare tvinger programmører til at skulle håndtere flere sager. Som andre har nævnt, tillader Oracle ikke denne ekstra tilstand at eksistere, fordi den behandler NULL og tom streng som det samme (det er umuligt at gemme en tom streng i en kolonne, der ikke tillader null i Oracle).



  1. DATABASE() – Hent det aktuelle databasenavn i MySQL

  2. mysql import på windows

  3. Hvorfor og hvor skal man bruge INDEX'er - fordele og ulemper

  4. django.db.utils.OperationalError Kunne ikke oprette forbindelse til serveren