ugrás a tartalomhoz

Címkézés hogyan?

Tanul0 · 2010. Jan. 30. (Szo), 19.40
Üdvözlet!

A hírportálokon, blogokban nagy divat lett a címkézés. Érdeklődnék, hogy hogyan valósítható ez meg, illetve mi alapján kell "címkézni" például a híreket. Meglévő oldalamat szeretném bővíteni ezzel, viszont nem tudom, hogyan kezdjem.

Szívesen várok ötleteket.
 
1

egyszerüen.

solkprog · 2010. Jan. 30. (Szo), 20.07
Legjobb tudomásom szerint ezek a lehető legegyszerűbben zajlanak, amikor a szerkesztő létrehozza a cikkeket, rögtön megadja a címkéket is hozzá. És ezt adatbázisban több-több kapcsolatban tárolják. (mindegyik címkéhez több hír is tartozhat, mindegyik hírhez több címke is tartozhat)
4

A struktúrájára tudnátok

Tanul0 · 2010. Jan. 31. (V), 12.57
A struktúrájára tudnátok pédát mondani?

Megadom a címkéket manuálisan, és amikor rákattint valaki az egyikre, azokat listázom ki, ahol megvan ugyan ez a címke?

pl.: kutya, állatok, veszély

Én rákattiontok a veszélyre, adatbázisban rákeresek a címke mezőben hol szerepel hasonló címke

Erre kidobja nekem, azt is ahol veszély a címke, meg azt is ahol veszélyes.

Jól gondolom?

Vagy máshogy oldanátok meg?
5

normálformák.

solkprog · 2010. Jan. 31. (V), 13.26
Néz utána a normálformáknak. Ne egy mezőben akard letárolni a címkéket. magyarán ne így:
cikk_id | cikk_tartalma | cikk_cimke
1       | kutya cikk ta.| kutya, állatok, veszély
2       | macska cikk t.| macska, állatok, nem szeretjük

Hanem külön táblában cikkeket és külön táblában címkéket illetve a több-több kapcsolathoz egy harmadik táblában hogy mik tartoznak össze.

cikk_id | cikk_tartalma
1       | kutya cikk tartalma
2       | macska cikk tartalma

cimke_id | cimke_cimke
1        | kutya
2        | állatok
3        | veszély
4        | nem szeretjük

kapcs_id | cikk_id | cimke_id
1        | 1       | 1
2        | 1       | 2
3        | 1       | 3
4        | 2       | 1
5        | 2       | 2
6        | 2       | 4
6

Köszi, erre voltam kíváncsi

Tanul0 · 2010. Jan. 31. (V), 14.42
Köszi, erre voltam kíváncsi
2

Keresés

janoszen · 2010. Jan. 30. (Szo), 23.25
Egy ismerősöm csinált egy igen jó cimkerendszert: http://uj.karinthy.hu/app/interface.php
3

2 perc alatt

Poetro · 2010. Jan. 31. (V), 10.47
Azért 2 perc alatt sikerült egy olyan szintű összeomlást produkálnom a sessionben, hogy innentől minden link:
Houston, we've got a problem...
Baj van!

Rendszerhiba.
Stack::__set_state(array(
'_maElements' =>
array (
0 => 'PHPERR_Could not retrieve content list. (/xxx/MainView.php: xxx)',
),
))
7

Béta

janoszen · 2010. Jan. 31. (V), 20.05
Mint látod az URLből még nem ment ki stabilnak. A cimkézéses navigálás az érdekes benne.
8

felesleges

breakline · 2010. Feb. 5. (P), 01.01
Most nem akarok lebeszélni senkit semmiről de erre teljesen felesleges keresztkapcsolt táblákat használni, amit ráadásul updateelni kell mikor a cikket megvaltoztatod, egyszerűen legyen egy meződ a tartalmak mellé: CIKKID, CIKKCIM,CIKKBODY,CIKKCIMKEK, és tarold el ilyen formaban: "cimke1 cimke2 cimke3", aztan mikor lekérdezed explode(" ",$cimkek) formaban vissza is kaptad. Rákeresni pedig sql esetén "LIKE '%cimke%'" formában tudsz. Aki ezt pusztán csak azért bonyolitja, hogy elmondhassa úgy csinálja, mint egy tankönyv, az megérdemel 3 plusz adatbázistáblát egy ilyen egyszerű dologhoz :)

De ha mondjuk tanulni akarod az adatbázisos dolgokat akkor tényleg érdemes úgy csinálni, ahogy a kolléga javasolja. Néhány sql lekérdezés viszont durván le tudja lassítani a futást, és akkor általában az a gond, hogy négy JOIN kell egy adat kikéréséhez, mert az eredeti adatbázis nagyon szépen megfelel minden kívánalomnak, de a gyakorlatban meg kijönnek a hátrányok. Lásd Java vs. sebesség stb...
9

címke

Poetro · 2010. Feb. 5. (P), 01.30
A címke miért ne tartalmazhatna szóközt vagy vesszőt, vagy pontosvesszőt vagy akármilyen más karaktert? Szerintem a "Jókai" bableves is teljesen szabályos címke, és az O'Reilly is, ahogy a hurka, kolbász is. És ezekben az esetekbe a LIKE nem igazán segít, mivel nem AZ volt a címke, csak valami hasonló, vagy részben az.

Amikor majd olyan adatbázist látsz, ahol több mint félmillió címke van, és hasonló mennyiségű cikk, akkor a LIKE úgy fog elhalálozni, ahogyan kell. Valószínűleg itt a Weblaboron is problémák adódnának ha LIKE-al kellene keresni, pedig még csak kb 100 ezer tartalmi oldal van, és valószínűleg csak párszáz, legfeljebb ezer címke.
10

nem muszáj olvasható formában

breakline · 2010. Feb. 5. (P), 01.51
nem muszáj olvasható formában tárolni, ahol én használtam ott valami egyszerű hashel ment. Mondjuk 1000 "valamiig" tökéletes. Egyébként nyilván ami egy blogra elég, az az ebayen már nem lesz az. Az egyszerű megoldás amit írtam pl. nem segíti a címkefelhő csinálást. Viszont van cachelés is, és sok más dolog, ami jól használható, nem kell állandóan lekérdezgetni az sql-t, ha nincs frissítve. Volt már olyan oldal, ahol a keresztkapcsolt lekérdezések vitték el a futási idő 40%-át, a template rendszer a másik 30%-ot. Ott akkor minden szakmai és egyéb tanács ellenére két lekérdezés lett az egy lekérdezésből, ami összességében levitte azt a 40%-ot mondjuk 10-re. Azt már nem is említem hogy bizonyos helyeken tiltva van a JOIN használata, ezzel is elég sokat vesződtem egyszer míg kiderült...
11

cimkekatalógus, ID tábla

h31st · 2010. Feb. 5. (P), 12.43
remekül el lehet pakolni a cimkéket egy katalógus táblába, és a cimkézett elemekhez el lehet tárolni az id-ket vesszőzve, vagy akár serialize-olva tömbből. mindkettőre lehet keresgélni like-al, ami megjegyzem százesres nagyságrendig is bőven működőképes tud lenni... a katalógustábla megoldhatja a többnyelvűsítést és pl cimkefelhőhöz a kategorizálást is
a kapcsolótábla akkor hasznos, ha cimkékre akarsz keresni, hogy miben szerepelt, és nemcsak egy táblához rendeled hozzá a cimkéket (tehát pl hírekhez, blogbejegyzésekhez IS), de akkor kell még egy mező a kapcsolóba, hogy melyik másik táblára vonatkozik... ha el van látva timestamp-el vagy másképp biztosítva van az időbeli sorrendiség, akkor remekül meg lehet úszni pl a cikkek és blogbejegyzések idő szerinti összefésülését közös listához...