staleks,
to što ti hoćeš da uradiš (ako sam dobro shvatio problem)
da si 100% siguran da kontrolišeš unos je prosto nemoguće.
Razlog je vrlo jednostavan: kako možeš da znaš kakav će
novi naziv izmisliti u budućnosti i u kakvom će obliku biti,
znači moraš dozvoliti korisniku bilo kakav unos, a ne da ga kontrolišeš.
E sad, kao što drugi rekoše, djelimično rješenje, a možda i
sasvim zadovoljavajuće je upoređivanje po sličnosti.
Tabelu modela proširi i dodaj polja PROIZVOĐAČ i M_NAZIV (u kojima će biti
odvojeni nazivi proizvođača i naziv modela bez imena proizvođača).
Unos u polje PROIZVOĐAČ možeš dobro da kontrolišeš izborom
iz pomoćne tabele već poznatih "svih" proizvođača, koja se mijenja rijetko
npr. uvijek će povući NOKIA, a ne nokia, Nokia, NOKIjA, nokiia...
i biće uvijek ispred NAZIVA modela. U pomoćnu tabelu poznatih
proizvođača dozvoliš samo dodavanje novih proizvođača i to u neko
posebno polje u koje korisnik može unijeti bilo šta (pa i
nokiia - možda tako stvarno i bude naziv novog proizvođača?).
Eto, problem je već i kod naziva proizvođača - kako kontrolisati?
Ovo polje će biti samo kao podsjetnik korisniku kod budućeg uparivanja
i nećeš u njemu provjeravati unos, a i ti ćeš u međuvremenu svoju
relevantnu bazu dopuniti i distribuirati.
Druga stvar, M_NAZIV kojeg ti popunjavaš u svojoj tabeli
pri upoređivanju rastaviš na sastavne dijelove, npr. ako je
naziv SGH-X427M onda imaš SGH, X, 427, M
(rastavljaš na riječi odvojene razmakom, crticom ili drugim specijalnim
znakovima, a onda i na poddijelove - samo grupa slova, samo broj...)
i pretražuješ M_NAZIVE koje je korisnik unosio, pa ako pronađeš onaj u
kome su sadržane sve riječi (ili većina) - onda je to to.
Primjer: sghx427m, sgh x427m, SGHx 427 m, x427m SGH... odgovara,
a s9h-x427m, 5gh427m, sgh427... ne odgovara tj. to su moguće
drugi modeli. U ovakvim slučajevima ponudiš korisniku da on sam
pridruži modele, a M_NAZIV koji već odgovara odmah čekiraš.
Uostalom, tako i web pretraživači u suštini rade, ukucavaj na razne
načine naziv nekog modela u google pa pogledaj rezultate, a kad
pogledaš keš neke pronađene stranice tamo ti svaki sastavni dio
traženog pojma oboji drugačije i označi u tekstu.
Napomena za korisnike da obavezno unose M_NAZIV tačno onako kako
je označeno na telefonu može dosta pomoći, to povećava vjerovatnoću uparivanja.
Ovo je sve nagrubo, ima tu štošta da se dotjera
I još jedna veoma važna stvar, ako korisnik neće da se drži tih nekih osnovnih
pravila onda ga lagano lupiš po džepu, pa svi zadovoljni