ugrás a tartalomhoz

Ékezetes városnevek kezelése

iddqd · 2014. Nov. 12. (Sze), 15.22
Sziasztok,

Azzal a problémával kerültem szembe miszerint valamilyen megoldásra lenne szükségem az ékezetes városnevek kezeléséhez. Meg kell jelenítenem őket sok helyen az oldalon ékezetesen , illetve többször szerepelnek az url-ben paraméterként ékezet nélkül. Ha ékezettel tárolom az adatbázisban, akkor az url-paraméter ékezet nélkül nem fog egyezni. ( esetleg LIKE %city% ? ) Ha fordítva akkor kiíratáskor kellene átalakítani amihez kellene egy lista Mo. összes településéről url barát verzióban, ami nem kevés meló. Hogyan lenne a legcélszerűbb tárolni őket illetve átalakítani amikor szükséges?

Köszönöm a segítséget.
 
1

Két mező

szabo.b.gabor · 2014. Nov. 12. (Sze), 15.35
Két mezőben tárolod a neveket? Valós név és alias (urlbarát név), ez legyen unique.

Másik megoldás, hogy az urlben az urlbarát név mellett még szerepelteted az id-t is.
2

Ehhez hasonló megoldás

iddqd · 2014. Nov. 12. (Sze), 16.25
Ehhez hasonló megoldásra jutottam én is: mindenhol ékezet nélkül tárolnám ( nem csak városok táblában szerepel ), csak nem db-be rakom hanem egy fájlba minden város ékezet nélküli megfelelőjét és mint ahogyan a nyelvi változókat, a városokat is megjelenítéskor ékezetesre cserélem. Csak ehhez egy szép kis listát kell készítenem kézzel. Ha DB -be menne az bonyolultabbnak tűnik elsőre
6

Szerintem nem szerencsés,

szabo.b.gabor · 2014. Nov. 13. (Cs), 10.25
Szerintem nem szerencsés, hogy az egyéb táblákban is karakteresen tárolod a városok nevét, arra van a primary key, hogy az egyéb táblákban azt használd.

Hidd el egy integer keresés sokkal gyorsabb, mint egy szöveg alapú. A join pedig nem ördögtől való művelet.
7

Tudom hogy nem az

iddqd · 2014. Nov. 13. (Cs), 17.17
Tudom hogy nem a legjobb így, eredetileg nem volt nagy jelentősége, nem kellett rá keresni. De a bővüléssel előkerült ez is. Van is City - tábla és van ID je, de mivel gyakorlatilag a város neve statikus úgy maradt idáig. Most neki állok átalakítani.
3

Szia! Én mindenképpen

tisch.david · 2014. Nov. 12. (Sze), 18.23
Szia!

Én mindenképpen egyszer tárolnám csak az adatbázisban, ékezetesen, és lenne egy függvényem, ami kiíráskor átalakítja URL-barát alakra.

Kereséskor meg vagy az adatbázismezőt is átalakítanám URL-barát alakra és abban keresnék, vagy - sokkal inkább - az URL-ben elhelyeznék egy ID-t is és az alapján keresnék.

Üdv:

Dávid
4

Nem tiszta

iddqd · 2014. Nov. 12. (Sze), 19.13
Nem egészen tiszta nekem, hogyan alakítsam a db mezőt a keresésnek megfelelőre?
Ilyen url-em van, példa:

www.example.com/group/category/subcategory/city.html

Category + subcategory + city a query paraméterei. Mindegyik megtalálható 1 táblában. Nem tudok city ID -t, azt külön le kellene kérdeznem akkor és JOIN - olni utána. Plusz 1 city - item kapcsolat tábla is kell. Bár ez nem probléma, de ez nem tűnik ideálisnak nekem.
5

Szia! Én semmiképpen nem

tisch.david · 2014. Nov. 12. (Sze), 23.09
Szia!

Én semmiképpen nem tartom szerencsésnek, hogy nem használsz ID-ket, de ha ragaszkodsz ehhez, akkor lehetne pl. valami ilyesmi a lekérdezésed:
SELECT *
FROM CITY 
WHERE REPLACE(NAME, 'á', 'a') = 'Tatabanya';
Egyébként pedig én a helyedben ilyen URL-eket használnék:
www.example.com/group/category/subcategory/city/123
ahol a 123 az a city kódja. Az URL parser meg nem a névvel bajlódna, hanem a kódot használhatná.

Üdv:

Dávid
8

Mindenképpen átalakítom a

iddqd · 2014. Nov. 13. (Cs), 18.05
Mindenképpen átalakítom a DB-t és ITEM tábla csak CITY_ID -t fog tartalmazni.
Az sql replace egyáltalán nem tetszik azt dobom.

Akkor azt hiszem nagyjából 2 lehetőségem van:

1.: Mentés: Ékezetesen + Slug, Url-be: Slug, Keresés: Slug
( JOIN CITY_ID - val )

2.: Mentés: Csak ékezetesen, Url-be: str_replace( Ékezetes )+CITY_ID , Keresés: CITY_ID

( JOIN )

Valami mellette/ellene esetleg?

Köszi a segítséget nektek!
9

Ha megmondod, hogy mi a

tisch.david · 2014. Nov. 13. (Cs), 23.06
Ha megmondod, hogy mi a feladat, akkor szívesen javaslok konkrét táblaszerkezetet is. Enélkül csak általánosságban tudok beszélni, és az alapján én mindenképpen a 2. esetet választanám.

Az URL-be írd bele a szöveget is, ha szeretnéd, de legyen benne numerikus ID is, és akkor könnyű lesz a keresés.
11

Nem bonyolult. Üzleteket

iddqd · 2014. Nov. 14. (P), 10.47
Nem bonyolult. Üzleteket tárolok egész Magyarország területéről. Az üzleteknek - többek között - van város, környék és régió tulajdonságuk. Ezek alapján szűrhetőnek kell lennie, azaz keresnem kell rá db-ben. Egymástól függetlenül is. ( csak régió, csak város, csak környék, ) Az rendszer/url alapvetően angol nyelvű, a régiók angolul ékezet nélkül szerepelnek, csak a város neveket nem lehet lefordítani. A környék ( városnév ) nem kerül sehol kiíratásra nem kell ékezetesen.
10

Mérlegelj :)

szabo.b.gabor · 2014. Nov. 14. (P), 09.49
a 2-es megoldás egyszerűbb, az 1-es elegánsabb, az hogy úgy indul a történet, hogy van egy 'slug' => id konverziód az elején lassítani nem lassít (meg kiválóan cache-elhető is), aztán innentől ugyanaz a két megvalósítás.

(az 1-es megvalósításnál meg azt illik ellenőrizni, hogy az url-ben lévő karakteres változat tényleg az id-hez tartozik-e..)

Így átgondolva, jelen esetben én lehet, hogy inkább az 1-es verzió mellett döntenék, 2-es verziót akkor használnám, ha nagy lenne az elemszám / volna lehetőség ütközésre.
12

Igen ez megy most! :) Most

iddqd · 2014. Nov. 14. (P), 11.01
Igen ez megy most! :) Most kezdek neki. Elemszám elhanyagolható sacc pár 100 város van összesen amire nekem szükségem van. Elvileg meg tudom oldani 1 ( város ) táblából az egészet és csak város_id -t tárolok az üzletek táblában. Város tábla pedig tartalmazza: város_id, város_name, város_slug ( ha ezt választom ), régió, környék