Jag ska skapa en statistiktabell som bla. registrerar om en användare kommer ifrån en sökmotor eller ej.
På frågan: Kommer besökaren ifrån en sökmotor?
Så finns det tre svar: Ja, Nej från helt annan sida, Nej skrivit url:en direkt i webbläsaren.
Vilken datatyp bör ett sådant fält vara i?
Bit: med 1, 0, null
Char(1) med 1, 0, null alt. 1,2,3
Datatypen tinyint tycker jag verkar vara ett bra val här.
Ett bra tips när man bygger flervalstabeller kan vara att bygga upp alternativen baserat på bitar. Med det menar jag att det första alternativet är 1. Det andra är 2. Det tredje är 4, etc. Detta gör att om du i framtiden vill ha möjlighet att lägga till ett fjärde alternativ (värde 8), så går det bra. Vill du även förändra så att man skall ha möjlighet att välja flera alternativ så går det också bra.
En annan trevlig effekt av att lagra på sättet Brimba föreslår är att värdet kan vara mer än ett samtidigt. Vill du att både 2 och 4 ska lagras så lagrar du helt enkelt 6.
Du kan sedan använda bitwise-operatorerna i SQL-frågor och i klienten.