Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JMBG - tip podataka

[es] :: MySQL :: JMBG - tip podataka

Strane: 1 2 3 4

[ Pregleda: 24131 | Odgovora: 60 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
..106.109.adsl.dyn.beotel.net.



+18 Profil

icon JMBG - tip podataka09.04.2011. u 14:41 - pre 158 meseci
Pozdrav svima.

Interesuje me koji tip podataka stavljate za JMBG? char, int ili...
Hvala.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: JMBG - tip podataka09.04.2011. u 14:53 - pre 158 meseci
13 cifara integer ti treba ... ja licno ga cuvam razdvojeno prvih 7 cifara u jednom intu i ostalih 6 u drugom (posto onda lakse vadim datum rodjenja i te gluposti)
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
..106.109.adsl.dyn.beotel.net.



+18 Profil

icon Re: JMBG - tip podataka09.04.2011. u 15:06 - pre 158 meseci
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.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: JMBG - tip podataka09.04.2011. u 15:10 - pre 158 meseci
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)
 
Odgovor na temu

Marko83
bez

Član broj: 264513
Poruke: 122



+767 Profil

icon Re: JMBG - tip podataka09.04.2011. u 22:29 - pre 158 meseci
A sta se desava sa pocetnom 0 kod jmbg ako se koristi int?
Slucaj: 0101970....?
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.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: JMBG - tip podataka10.04.2011. u 10:53 - pre 158 meseci
znas tacno koji je format JMBG-a .. svaki integer generalno parsiras od "pozadi" no u svakom slucaju tu dobijas nulu na toj poziciji


 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: JMBG - tip podataka11.04.2011. u 07:20 - pre 158 meseci
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.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
..106.109.adsl.dyn.beotel.net.



+18 Profil

icon Re: JMBG - tip podataka11.04.2011. u 20:26 - pre 158 meseci
HVALA to je to.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: JMBG - tip podataka12.04.2011. u 01:16 - pre 158 meseci
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
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: JMBG - tip podataka13.04.2011. u 08:47 - pre 158 meseci
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.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: JMBG - tip podataka13.04.2011. u 11:23 - pre 158 meseci
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));
 

 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
..106.109.adsl.dyn.beotel.net.



+18 Profil

icon Re: JMBG - tip podataka13.04.2011. u 13:02 - pre 158 meseci
@Shadowed

Svaka ti cast :)
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: JMBG - tip podataka13.04.2011. u 18:27 - pre 158 meseci
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.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: JMBG - tip podataka13.04.2011. u 18:44 - pre 158 meseci
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
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: JMBG - tip podataka13.04.2011. u 18:58 - pre 158 meseci
Ovaj primer upravo dodaje vodecu nulu. Moze se napraviti i opsta funkcija koja izdvaja cifre iz proizvoljnog broja sa proizvoljnim brojem vodecih nula.
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: JMBG - tip podataka13.04.2011. u 23:30 - pre 158 meseci
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.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: JMBG - tip podataka13.04.2011. u 23:36 - pre 158 meseci
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.
 
Odgovor na temu

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
82.117.198.*



+25 Profil

icon Re: JMBG - tip podataka14.04.2011. u 07:59 - pre 158 meseci
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.
I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: JMBG - tip podataka14.04.2011. u 08:44 - pre 158 meseci
Kakve veze ima? :)
Onaj kod koji sam dao daje 13 cifara, nezavisno da li jmbg ima nulu na pocetku ili neku drugu cifru.
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.dynamic.sbb.rs.



+395 Profil

icon Re: JMBG - tip podataka14.04.2011. u 08:50 - pre 158 meseci
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 :)
Viva lollapalooza
 
Odgovor na temu

[es] :: MySQL :: JMBG - tip podataka

Strane: 1 2 3 4

[ Pregleda: 24131 | Odgovora: 60 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.