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

Hvordan kan jeg gemme en række booleske værdier i en MySql-database?

Hvis du leder efter en måde at gøre dette på en måde, der er søgbar, så nej.

Et par søgbare metoder (der involverer mere end 1 kolonne og/eller tabel):

  • Brug en masse SET kolonner. Du er begrænset til 64 elementer (til/fra) i et sæt, men du kan sandsynligvis finde ud af en måde at gruppere dem på.
  • Brug 3 tabeller:Elementer (id, ...), FlagNames(id, navn) og en pivottabel ItemFlags(item_id, flag_id). Du kan derefter forespørge efter elementer med joins .

Hvis du ikke har brug for, at det er søgbart, så er alt, hvad du behøver, en metode til at serialisere dine data, før du lægger dem i databasen, og en unserialize det, når du trækker det ud, og derefter bruge en char eller varchar kolonne.

  • Brug faciliteter indbygget i dit sprog (PHP's serialize/unserialize).
  • Sæt en række "y" og "n" tegn sammen.
  • Bitpak dine værdier i en streng (8 bits pr. tegn) i klienten, før du foretager et opkald til MySQL-databasen, og pak dem ud, når du henter data ud af databasen. Dette er den mest effektive lagringsmekanisme (hvis alle rækker er ens, brug char[x], ikke varchar[x]) på bekostning af, at dataene ikke er søgbare og lidt mere kompliceret kode.


  1. PostgreSQL Opret skema

  2. Fatal fejl:Kald til udefineret funktion session_register()

  3. En dedikeret lagret procedure for at få den seneste database-backup-status

  4. Sådan indsætter du data i SQL Server