sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag lagra en uppsättning booleska värden i en MySql-databas?

Om du letar efter ett sätt att göra detta på ett sätt som är sökbart, så nej.

Ett par sökbara metoder (som involverar mer än en kolumn och/eller tabell):

  • Använd ett gäng SET kolumner. Du är begränsad till 64 objekt (på/av) i en uppsättning, men du kan förmodligen komma på ett sätt att gruppera dem.
  • Använd tre tabeller:Items (id, ...), FlagNames(id, name) och en pivottabell ItemFlags(item_id, flag_id). Du kan sedan fråga efter objekt med joins .

Om du inte behöver det för att vara sökbart behöver du bara en metod för att serialisera din data innan du lägger den i databasen, och en avserialisera den när du drar ut den, använd sedan en kolumn char eller varchar.

  • Använd faciliteter som är inbyggda i ditt språk (PHP:s serialize/unserialize).
  • Sätt ihop en serie "y" och "n" tecken tillsammans.
  • Bitpacka dina värden i en sträng (8 bitar per tecken) i klienten innan du gör ett anrop till MySQL-databasen, och packa upp dem när du hämtar data från databasen. Detta är den mest effektiva lagringsmekanismen (om alla rader är lika, använd char[x], inte varchar[x]) på bekostnad av att data inte är sökbar och något mer komplicerad kod.


  1. Vad är markören i oracle

  2. SQL Server-systemdatabaser – grundläggande koncept

  3. Hur man installerar, säkrar och prestandajustering av MariaDB Database Server

  4. Lägger till text i databasen