[ 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
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.