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

enum eller char(1) i MySQL

Ingen af ​​dem. Du vil typisk bruge tinyint med en opslagstabel

  • char(1) vil være lidt langsommere, fordi sammenligning bruger sortering

  • forvirring:Når du udvider til mere end A og P

  • Brug af et bogstav begrænser dig, efterhånden som du tilføjer flere typer. Se sidste punkt.

  • hvert system, jeg har set, har mere end én klient, f.eks. rapportering. A og P skal løses til Aktiv og Passiv for i hver klientkode

  • udvidelighed:Tilføj en type mere ("S" for "Suspenderet") du kan en række til en opslagstabel eller ændre en masse kode og begrænsninger. Og din klientkode også

  • vedligeholdelse:logik er på 3 steder:database begrænsning, database kode og klient kode. Med et opslag og fremmednøgle kan det være ét sted

  • Enum er ikke bærbart

På plussiden ved at bruge et enkelt bogstav eller Enum

Bemærk:der er et relateret DBA.SE MySQL-spørgsmål om Enums . Anbefalingen er også at bruge en opslagstabel der.



  1. Ændring af en søjletype til længere strenge i skinner

  2. Sådan importeres en Heroku PG-dump til lokal maskine

  3. Hvor skal jeg opbevare min databases legitimationsoplysninger?

  4. Xampp Vil ikke starte MySQL-serveren på Mac OSX?