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

Tagovi u MySQL bazi

[es] :: MySQL :: Tagovi u MySQL bazi

[ Pregleda: 665 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

S A J A
Beograd

Član broj: 226539
Poruke: 1800
*.static.sbb.rs.



+407 Profil

icon Tagovi u MySQL bazi23.03.2019. u 12:20 - pre 2 meseca
Kako je najbolje držati tagove u bazi?

Na primer, imam tabelu dokumenata i svaki dokument može da ima različite tagove. Taj tag je običan string, recimo neka reč. Unos je slobodan, odnosno, nema realaciju na neki unapred pripremljeni spisak. Bukvalno nabrojane reči. Evo recimo kao na primer što ima stackoverflow za svaki post.

Dakle, kako to držati u bazi a da pretraga bude efikasna. Da li recimo da to bude neki string odvojen nečim ili možda niz upakovan u JSON polje...

Ne znam koliko je efikasna pretraga ...WHERE JSON_CONTAINS(tags, "[nešto]").


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15079
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2295 Profil

icon Re: Tagovi u MySQL bazi23.03.2019. u 15:26 - pre 2 meseca
ima raznih principa, neki ce ti reci da uzmes document storage a ne
mysql, vrlo cest princip je da imas jedno string polje u koje ubacis te
reci kao stringove i imas full text index nad tim poljem i radis match()
.. imas varijantu da svaki put kad se dodaje novi tag dodajes ga u
tabelu tag_id, tag_name, pa onda uz dokument vezujes document_id, tag_id
... najbolji nacin tesko da postoji
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2315

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+455 Profil

icon Re: Tagovi u MySQL bazi23.03.2019. u 19:37 - pre 2 meseca
Ne bi bilo lose da objasnis nesto vise o tagovima... sustina dobrog odgovora je :

- Koliko ima (razlicitih) tagova koji ce biti u upotrebi? Teoretski mnogo, ali prakticno, posebno ako imas auto-complete, ljudi vise vole da izaberu nego da kucaju do kraja... brzo se iskristalise par stotina popularnih, sve ostalo ode.
- Koliko tagova moze jedan dokument da ima? Takodje, koliko dokumenata ces imati u bazi, red velicine?

Meni mozda ima smisla neki EAV-like fazon sa 3-4 tabele, jedna ima opis dokumenta, druga tagove i jedna ili dve usmerene vezne. Opet, mnogo zavisi od brojeva....

U sustini, imas dokumenta, imas tagove i imas neku n-n relaciju izmedju njih, ja bi RDBMS modelirao na osnovu toga. E sad, prvo, zavisi sta je tebi efikasno, drugo zavisi kako se sistem koristi....
Please do not feed the Trolls!

Profesionalni sport je oksimoron. Profesionalni sportista je, najcesce, samo moron.
 
Odgovor na temu

S A J A
Beograd

Član broj: 226539
Poruke: 1800
*.static.sbb.rs.



+407 Profil

icon Re: Tagovi u MySQL bazi24.03.2019. u 10:30 - pre 2 meseca
Biće tu dosta i dokumenata i artikala i partnera... pa mi je ideja bila da tagovima uvedem neku slobodniju vrstu kategorizacije. Dakle, nemam nikakve posebne zahteve, i dalje sam samo na nivou arhitekture. Prečešljao sam brojne forume i otprilike su slični odgovori. Ne postoji idealno rešenje za tagove. Zbog svoje slobodne prirode, teško ih je obuzdati relacionim modelima. Sve mi se čini da u mom slučaju trošak (kompleksnije implementacije, održavanja i performansi) prevazilazi dobiti pa ću verovatno odustati od istih. Preći ću na sistem dimenzija što mu dođe nešto kao višestruke kategorizacije. Češće se koristi u erp sistemima (što je nalik ovome što pravim), jes da ima nešto manju slobodu od tagova ali opet dovoljno dobro da ne mora da te boli glava ;)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15079
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2295 Profil

icon Re: Tagovi u MySQL bazi24.03.2019. u 10:46 - pre 2 meseca
pa vidi ne moras da izbegavas tagove, kako god ih napravis isplati se
... ja licno najcesce radi onu verziju sa tag_id, tag_name +
document_id, tag_id taelama ... imas jedan dodatni korak kada
insertujes/editujes dokument da proveris koji tagovi vec postoje a koji
su novi, nove insertujes (i pokupis id's) a za postojece pokupis id's in
onda tim id's popunis document_id, tag_id tabelu .. realno super
varijanta zato sto relativno jeftino dobijes auto expansion kada neko
kuca tagove .. (to sa fts resenjem ne ide tako brzo i tako lako, a sa
externim pretrazivacima tipa da uvodis sphinx, elastic, lucene/solr..  i
slicno je dodatni posao) ... radi to lepo, a def. nema potrebe da za
tako nesto uvodis json
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 2498
109.72.51.*



+551 Profil

icon Re: Tagovi u MySQL bazi24.03.2019. u 10:49 - pre 2 meseca
Ne znam sta json radi u bazi uopste ;p
press any key to continue or any other to quit....
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 5539

Sajt: pedja.supurovic.net


+1271 Profil

icon Re: Tagovi u MySQL bazi24.03.2019. u 13:51 - pre 2 meseca
U praksi tag nije samo jedna reč nego uz tu reš obično ide i slug (string koji se korsiti u URL taga), pa ume dabude i veza ka tagu koji ima isto značenje (sinonim, ili je na drugom jeziku ili pismu), pa onda ide brojač poularnijih tagova itd... sve to miriše na tablarno organizovanje tagova kao složenih podataka.
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2315

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+455 Profil

icon Re: Tagovi u MySQL bazi24.03.2019. u 13:54 - pre 2 meseca
Citat:
bogdan.kecman:
pa vidi ne moras da izbegavas tagove, kako god ih napravis isplati se
... ja licno najcesce radi onu verziju sa tag_id, tag_name +
document_id, tag_id taelama ... imas jedan dodatni korak kada
insertujes/editujes dokument da proveris koji tagovi vec postoje a koji
su novi, nove insertujes (i pokupis id's) a za postojece pokupis id's in
onda tim id's popunis document_id, tag_id tabelu .. realno super
varijanta zato sto relativno jeftino dobijes auto expansion kada neko
kuca tagove .. (to sa fts resenjem ne ide tako brzo i tako lako, a sa
externim pretrazivacima tipa da uvodis sphinx, elastic, lucene/solr..  i
slicno je dodatni posao) ... radi to lepo, a def. nema potrebe da za
tako nesto uvodis json

Upravo to sam i ja mislio, to sam video vise puta u praksi, radi odlicno, testirano na bazama sa par desetina miliona redova. :)
Please do not feed the Trolls!

Profesionalni sport je oksimoron. Profesionalni sportista je, najcesce, samo moron.
 
Odgovor na temu

[es] :: MySQL :: Tagovi u MySQL bazi

[ Pregleda: 665 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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