За SQL Server:до 8 колони от тип BIT може да се съхранява в един байт, докато всяка колона от тип CHAR(1) ще заеме един байт.
От друга страна:BIT колоната може да има две стойности (0 =false, 1 =вярно) или изобщо да няма стойност (NULL) - докато CHAR(1) може да има всякаква стойност на символа (много повече възможности)
Така че наистина, всичко се свежда до:
- наистина ли се нуждаете от поле true/false (да/не)? Ако е така:използвайте
BIT - Имате ли нужда от нещо с повече от само две възможни стойности - използвайте
CHAR(1)
Не мисля, че има съществена разлика от гледна точка на производителността - освен ако нямате десетки хиляди колони. След това, разбира се, с помощта на BIT който може да съхранява до 8 колони в един байт би било полезно. Но отново:за вашия "нормален" случай на база данни, където имате няколко, дузина от тези колони, това наистина няма голяма разлика. Изберете типа колона, който отговаря на вашите нужди - не се тревожете прекалено за представянето.....