[ magrinjo @ 27.08.2018. 20:41 ] @
Pozdrav svima,

Moje pitanje je, u cemu je razlika u sledeca dva primera, odnosno, ukoliko ta kolona moze imati samo dva odgovora, sta dobijam ako je predstavim kao boolean a ne kao VarChar kao na primeru?


1. Boolean

isActive
( true, false )

2. VarChar

isActive
( yes, no )
[ nkrgovic @ 27.08.2018. 21:10 ] @
MySQL zapravo nema boolean tip, vec je to "zamena" za tinyint.

Sustinska razlika je u tome :

- Boolean, tj. tinyint zauzima manje mesta nego varchar.
- Int se mnogo lakse indexira i pretrazuje. Ovo ce posebno dobro doci kad budes pravio neki slozeni upit.

Ako ti BAS treba da dobijes nazad string iz baze, mozes da stavis ENUM umesto VarChar.
[ mjanjic @ 27.08.2018. 21:16 ] @
Pa samo ti se kaže, kad je varChar, možeš da upišeš šta hoćeš...
Pročitaj šta kažu na Stackoverflow: https://stackoverflow.com/ques...337/true-false-vs-0-1-in-mysql

A sećam se iz baza za MSSQL da je bio neki problem zbog njihovog Transact-SQL, jer nemaju Boolean tip podatka, već samo bit koji može biti 0, 1 i NULL.
[ bogdan.kecman @ 28.08.2018. 00:15 ] @
teoretski ako imas u varchar samo vrednosti "true" i "false" index bi
trebalo da sa takvom kardinalnosti napravi index koji je potpuno isti
kao za bool (enum), ali u praksi, na zalost, to nije tako te ce varchar
index biti visestruko (i 50 puta) sporiji