Citat:
djoka_l: Nije mi jasan tako decidiran Bogdanov stav
ako je to jedino sto nije jasno onda smo na konju.... bogdan ima decidiran stav zato sto zna kako je koji tip podataka implementiran unutar mysql-a i sta koliko kosta ... mozes ti da cuvas to i u blobu sto se bogdana tice, ali ako pricamo o "dobrom" resenju, varchar nikad nije dobro resenje. Ako bas hoces da koristis karakter tip onda koristi char(13).
Citat:
. Kod mene u bazi, matični broj je VARCHAR2(13). Osim JMBG-a tu se nalaze i matični brojevi pravnih lica (7 ili 8 cifara), matični brojevi preduzetnika, generisani matični brojevi za pravna i fizička lica koja nemaju matični broj.
kao sto rekoh, mozes i blob da koristis nije problem, pitanje da li je to "dobro resenje" ... diskutabilno je to sto u jednom polju cuvas jmbg, maticni broj i "generisani" id .. ne mora da bude pogresno - denormalizacija baze ume da bude vrlo korisna u mnogim slucajevima tako da "dobro" resenje u ovom slucaju uvek zavisi od samog zahteva, mada opet ovde char(13) pravi mnoooooooooooogo bolju tabelu nego varchar(13)... bitno je cuvati bajtove, ali za polja nad kojima imas index je mnogo vaznije da su poznate duzine, posebno u slucaju da ti u 90% slucajeva zauzimaju tu max duzinu, kolicina bacenih bajtova u mnogome zasenjuje brzinu koja se na taj nacin dobija... da ne spominjemo da ako su sva polja u tabeli poznate duzine tabela ima staticki format te su indexi brzi...
Citat:
Problem sa NUMBER ili INTEGER formatom je to što mora da se pazi na gubitak vodeće (ili vodećih) nule, naročito, ako kao u mom slučaju, nisu svi podaci obavezno iste fiksne dužine.
ne postoji "vodeca nula" kao problem.... ako to vidis kao problem imas neki znacajan problem na drugoj strani
Citat:
Po meni INTEGER tip je dobar samo ako nad njim samo treba da se obavljaju neke aritmetičke operacije, inače je VARCHAR2 sasvim odgovorajući. Gubitak nekoliko bajtova po slogu je minoran ako imaš 150 hiljada lica u bazi od 3TB finansijskih promena...
uzmi u obzir da je porednjenje dva integera znacajno brze od poredjenja dva varchar-a (skoro pa za red velicine), onda uzmi u obzir koliko poredjenja mora da se napravi u drvetu da bi se uradio jedan PK select...
Obrati paznju da ovo sve ima veze samo sa MySQL-om ... nemam ideju kako interno ove operacije obavlja npr oracle i da li to pravi bilo kakvu razliku ... za mysql, i myisam (posebno) i innodb razlika je primetna