Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 60 odgovora
  • 32.411 pregleda

Najnovija ↓

JMBG - tip podataka 09.04.2011. u 15:41 · pre 189 meseci #1
Pozdrav svima.

Interesuje me koji tip podataka stavljate za JMBG? char, int ili...
Hvala.
Re: JMBG - tip podataka 09.04.2011. u 16:06 · pre 189 meseci #3
Hmm...A zasto mi izbacuje gresku kad stavim 13 cifara int.

Sad sam iskljucio taj komp, ali pise nesto kao too long...a ukucam tacno 13 cifara, tek kad smanjim na 10 (int(10)) i upisem 10 cifara radi?
Znaci jmbg int(13) i upisem 13 cifara dobijam gresku, a int(10) i 10 cifara radi...

E jel ima tu neki longint? Nisam gledao.

HVALA na odg. u svakom slucaju.
Re: JMBG - tip podataka 09.04.2011. u 16:10 · pre 189 meseci #4
zato sto je obican integer 4 bajta, znaci -2147483648 do 2147483647 ili ako koristis unsigned onda 0-4294967295 sto znaci da ne moze da zapamti 13 cifara broj, moras da koristis BIGINT koji je 8 bajtova (-9223372036854775808 do 9223372036854775807 odnosno 0 do 18446744073709551615 u slucaju unsigned)

u svakom slucaju ti je BIGINT (8 bajtova) bolje resenje nego CHAR(13) (13 bajtova)
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Sviđa mi se1
Re: JMBG - tip podataka 09.04.2011. u 23:29 · pre 189 meseci #5
A sta se desava sa pocetnom 0 kod jmbg ako se koristi int?
Slucaj: 0101970....?
Potpis
Zato što, kada uporediš VW i BMW koji koštaju isto, shvatićeš da za svaki taj evro koji čini cenu ta dva auta, kod VW dobijaš više nego kod BMW-a. Isto važi i MB.
Re: JMBG - tip podataka 11.04.2011. u 08:20 · pre 189 meseci #7
Takođe, može i DECIMAL(13,0) koji bi zauzimao 6 bajtova (od MySQL 5.0.3 na ovamo). A što se tiče nule, koristi ZEROFILL.
Potpis
"Common sense is not so common." - Voltaire
Re: JMBG - tip podataka 11.04.2011. u 21:26 · pre 189 meseci #8
HVALA to je to.
Re: JMBG - tip podataka 12.04.2011. u 02:16 · pre 189 meseci #9
sa decimal i "brojem bajtova" nemoj previse da racunas posto to moze da se promeni u nekom trenutku .. ako se dobro secam na innodb pluginu (5.5 i dalje) je opet 8 bajta ...\

sto se zerofill tice, to ti ima veze samo u samom cli-u kako izgleda (i definise polje kao unsigned) nece mu dodat nule u njegovom klijentu posto ce isti dobiti broj pa sam mora da se postara oko ispisa
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: JMBG - tip podataka 13.04.2011. u 09:47 · pre 189 meseci #10
Kako radite proveru ispravnosti JMBG? Funkcija je vezana za svaku cifru
pojedinačno stim da je 13-tacifra kontrolna. Meni je logičnije da
ga čuvam kao text(13). Lakše je izdvojiti cifru kao karakter i
konvertovati u numeričku vrednost nego iz nekog integera izdvajati cifru
po cifru i još voditi računa o popuni vodeće nule.
Re: JMBG - tip podataka 13.04.2011. u 12:23 · pre 189 meseci #11
Citat:
mkaras: Lakše je izdvojiti cifru kao karakter i
konvertovati u numeričku vrednost nego iz nekog integera izdvajati cifru
po cifru i još voditi računa o popuni vodeće nule.

Pa, nije preterano tesko ni izdvajati cifre. Evo ti primer u C#-u (mozda postoji i bolje resenje, ovo sam na brzaka :)):

Code (csharp):

long jmbg = 101975123456;  //missing leading zero
byte[] cifre = new byte[13];
cifre[12] = (byte)(jmbg % 10);
for (int i = 2; i <= 13; i++)
    cifre[13 - i] = (byte)((jmbg % Math.Pow(10, i) - cifre[14 - i]) / Math.Pow(10, i-1));
 
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: JMBG - tip podataka 13.04.2011. u 14:02 · pre 189 meseci #12
@Shadowed

Svaka ti cast :)
Re: JMBG - tip podataka 13.04.2011. u 19:27 · pre 189 meseci #13
Slažem se da je u C, C++ i C# lako to odraditi, ali nije tako u svim
programskim jezicima. I dalje ću koristiti podatak tipa string. Nema
provere da li ima vodeće nule, u većini jezika je prirodno izdvajanje
dela stringa. Važi čak i za uskladištene procedure. Kada uhvatim malo
vremena pokušaću i tu varijantu sa integer-ima a do tada sam i dalje za
podatak tipa string.
Re: JMBG - tip podataka 13.04.2011. u 19:44 · pre 189 meseci #14
mkaras, programski jezik koji nema modulo i deljenje nije programski jezik ... a nesto ne verujem da pises aplikacije u asembleru ... ne postoji "vodeca" nula, kada iz bilo kog integera trazis cifru na toj lokaciji dobices nula ako je tu nula .. dakle problem vodece nule ne postoji .. izdvajanje dela stringa uopste nije prirodno "za sve jezike", cak naprotiv, sve string funkcije trose ogromne kolicine resursa (sto memorije sto vremena, tj cpu ciklusa)... sto se tice stored procedure-a ista prica...

naravno sve se svodi na to da li ti je bitnije da optimizujes to maximalno (i ustedis tih 5 bajtova po slogu, i tih par procesorskih taktova u obradi) ili ti je bitnije da optimizujes svoje vreme i iskoristis string funkcije pa ti kod izgleda "lepse" i pise se 10 minuta krace .. na bazi od 10000 slogova, potpuno je svejedno
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: JMBG - tip podataka 13.04.2011. u 19:58 · pre 189 meseci #15
Ovaj primer upravo dodaje vodecu nulu. Moze se napraviti i opsta funkcija koja izdvaja cifre iz proizvoljnog broja sa proizvoljnim brojem vodecih nula.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: JMBG - tip podataka 14.04.2011. u 00:30 · pre 189 meseci #16
Voleo bih da vidim stored procedure koja je tako napisana. Čini mi se da
je za validaciju unosa ipak normalnije da se koriste resursi baze sa
pripadajućim SQL jezikom nego validacija na nivou aplikacije. Ja do sada
nisam imao problema kada tretiram JMBG kao string pa čak i kada u tabeli
ima mnogo više od tih desetak hiljada slogova. Kada budem imao vremena
probaću i opciju sa int-ovima.
Re: JMBG - tip podataka 14.04.2011. u 00:36 · pre 189 meseci #17
Zavisi kako hoces da dobijes rezultat. Ne moze se napraviti direktno ekvivalentan kod jer SQL nema nizove.

Inace, svakako treba imati validaciju u bazi kako bi zastitio bazu ali je za dobru aplikaciju potrebno imati i u aplikaciji kako bi se koristnik odmah upozorio i stedeli pozivi bazi.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: JMBG - tip podataka 14.04.2011. u 08:59 · pre 189 meseci #18
Zamislite JMBG na primer: 0907987510016
Ako je int bice 907987510016, sto nije 13 cifara. Ja bi se tu ipak drzao string-a u programskom jeziku, a VARCHAR(13) u SQL-u.
Potpis
I don't need a girl for sex , All I Need is Binary and HEX
Re: JMBG - tip podataka 14.04.2011. u 09:44 · pre 189 meseci #19
Kakve veze ima? :)
Onaj kod koji sam dao daje 13 cifara, nezavisno da li jmbg ima nulu na pocetku ili neku drugu cifru.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: JMBG - tip podataka 14.04.2011. u 09:50 · pre 189 meseci #20
Ja bih ipak string tip. Desavalo mi se da se dvoumim u nekim slucajevima , a na kraju se ispostavi da je dobro sto sam to uradio .
Pojavi se "stranac" u aplikaciji sa svojim "jmbg-om" ili id-ijem koji osim brojeva sadrzi i karaktere :)
Potpis
Viva lollapalooza
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme