| MySQL in collations | ||
|---|---|---|
|
Vini
5. jun 2008 12:29:35
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#1
Naletel sem na eno posebnost pri uporabi collationov v MySQL, pa bi malo z vami delil zadevo, za vsak primer, da se ne boste prevec cudili, ko boste kdaj naleteli na to zadevo. To obnasanje je sicer podrobno opisano tukaj, ampak kdo pa dandanasnji bere navodila? :) Skratka, collations v MySQL niso namenjeni le zgolj pravilnemu urejanju po abecednem redu, ampak zelijo zadeve biti tudi pametne pri ugotavljanju, kateri sicer razlicni znaki so naceloma enaki. Da ponazorim: za razliko od: Ce malo razmislimo, zadeva povsem stima, nam slovencem je seveda znak "z" razlicen od znaka "ž", vecino ostalih jezikov pa kratkomalo boli nekaj za te stresice, pa saj jih niti na tipkovnici nimajo :) Ravno tako pa nas boli isti ze prej neomenjeni organ za nekatere druge znake, primer: za razliko od:
|
|
|
jankoM
5. jun 2008 13:00:31
Pridružen od: 25. sep 2007 615 objav 253 7 2 |
||
|
HeXeR
5. jun 2008 13:05:40
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#3
Ah, za moje pojme skoraj prepameten :) . First rule of business, protect your investment.
|
|
|
Vini
5. jun 2008 13:26:31
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#4
Res je HeXeR, vcasih si mogoce tega vedenja clovek ne bi zelel. Tega vedenja sicer nima utf8_bin collation, ampak na zalost postane zadeva potem case-sensitive. |
|
|
Alkimisticus
5. jun 2008 14:49:45
Pridružen od: 22. apr 2008 170 objav 21 24 2 |
#5
Sicer se na my_sql ne spoznam toliko, sam pa pred kratkim delal na specifičnem primerjanju objektov preko comparatorja/primerjalnika in je bila stvar sila preprosta. Tako da po moje minimalen strošek (čas), če narediš svoje urejanje in mogoče ti še kje drugje prav pride. Seveda če se gre samo za slovenščino in ne za vse charsete. |
|
|
Vini
5. jun 2008 15:03:28
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#6
Alkimisticus, ni tak hud problem v primerjanju, to se seveda da resit blazno enostavno. Primer primerjanja sem dal le kot demonstracijo problema. Bolj je problem v tem, da se zgodi naslednje: Razumes? |
|
|
Alkimisticus
5. jun 2008 15:39:17
Pridružen od: 22. apr 2008 170 objav 21 24 2 |
#7
Ja, razumem, zaradi preveč ohlapnega primerjanja imaš netočne rezultate. Torej bolj strog primerjalnik (slovenski) reši zadevo. In razumem da ti nimaš problema, samo prikazal si zanimivost. Misli sem samo, da bi zadevo še malo naprej peljal in naredil custom comparator za kakšna bolj eksotična primerjanja. |
|
|
Vini
5. jun 2008 15:56:36
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#8
Alkimisticus, problem bi vsekakor nastal, ker ta custom comparator ne bi mogel uporabljati indeksov za optimizacijo poizvedb. Verjetno bi bila resitev v tem, da bi napisal custom collation, kar bi pa to verjetno za sabo potegnilo poseganje v izvorno kodo MySQLa, kar spet ni prevec kul. Lahko se pa motim, povsem mozno je, da je dodajanje novega custom collationa povsem enostavno, le zasledil nisem tega nikjer. |
|
|
Alkimisticus
5. jun 2008 16:12:59
Pridružen od: 22. apr 2008 170 objav 21 24 2 |
||
|
Vini
5. jun 2008 16:29:03
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#10
Alkimisticus, si me zrajcal s tem problemom in sem sel raziskovat. Ocitno se da dodajati custom collations brez poseganja v izvorno kodo MySQLa in tudi brez recompilanja. http://forge.mysql.com/wiki/HowtoAddaCollation |
|