Jump to content
php.lv forumi

Recommended Posts

Posted

Nu tad tā, ienāca prātā lieliska doma, daudzos portālos ir skatīšanās pēc tagiem un citas tagu lietas!! piemŗam tu paņem lasīt rakstu un malā parādās "Līdzīgie raksti" kurus paņem pēc lasāmā raksta tagiem!

 

1) Man iešāvās prātā 2 veidi:

 

1]

 

id | virsraksts | raksts | tags1 | tags2 | tags3 | tags4 |

1 | Zagšana | blaa | noziegums | zaglis | menti | bandīti|

--------------------------------------------------------------------------

2]

id | virsraksts | raksts | tagi |

1 | Zagšana | blaa | noziegums, zaglis, menti, bandīti |

--------------------------------------------------------------------------

kurš no tiem ir labāks?

 

un otrs jautājums

2) Kā pēctam to realizēt, lai parāda piemēram 5 līdzīgos rakstus, nu kā vienkārši pēc WHERE izvilkt no db es zinu, nu iedomājaties paši šo lietu un sapratīsiet :)

 

Varat parādīt dažus piemērus?

 

Paldies jau iepriekš.. jo es nevaru īsti iebraukt šitajā tagu lietā

Posted
Es taisītu ar trīs tabulām:

 

Raksti

id

virsraksts

raksts

 

Tagi

id

tags

 

TagRaksti

id_tags

id_raksts

 

 

Man šķiet ka baigā ķēpa ar tiem tagiem... tajā

Tagi

id

tags

 

stāvēs tagi pēc id... nu labi un tajā

TagRaksti

id_tags

id_raksts

 

stāvēs raksta id un pretī viņam taga id..

kā ar izvadi tas viss izskatītos?

Posted

Atlasīt visus rakstus, kam tags "kurkums"

 

SELECT r.id AS id, r.virsraksts AS virsraksts FROM Raksti AS r, TagRaksti AS tr, Tagi AS t WHERE r.id = tr.id_raksts AND tr.id_tags = t.id AND t.tags = 'kurkums'

Posted

un ja vienam rakstam ir vairāki tagi, tad pēc 'kurkums' sekos:

 

SELECT r.id AS id, r.virsraksts AS virsraksts FROM Raksti AS r, TagRaksti AS tr, Tagi AS t WHERE r.id = tr.id_raksts AND tr.id_tags = t.id AND t.tags = 'kurkums' OR t.tags = 'ļurkums'

 

vai nepareizi?

Posted

Ne īpaši pareizi, jo meklētājā jau nerakstīsi vairākus tagus? Bet ja rakstīsi, tad, jā, ja uzskati, ka jābūt kaut vienam no tagiem... Ja jābūt abiem tagiem, tad vajadzēs rakstīt AND t.tags='ļurkums'.

Posted

bet ja AND tad viņš parādīs rakstus kuriem ir obligāti abi šie tagi.. meklētājā es negribu rakstīt... redzkur dzīvs taustāms piemērs (žēl ka tikai no ārpuses taustāms)

 

http://www.boot.lv/index.php?pg=202&news_id=5643

 

Rakstam labajā pusē ir "Raksti ar līdzīgu tēmu"

Posted

nu bet ja piemēram būs raksts par mūzikas tālruni un tad būs jāliek divi tagi "mobilie" un "atskaņotāji"

Posted

Visi atvērtajam rakstam līdzīgie raksti:

SELECT DISTINCT r.id AS id, r.virsraksts AS virsraksts FROM Raksti AS r, RakstTagi AS rt WHERE rt.id_tags IN (SELECT rt2.id_tags FROM rt2 AS RakstTagi WHERE rt2.id_raksts = '$atvērtā_raksta_id')

 

Ai, nu taisi kā gribi. Es taisītu šādi.

Posted

rīts gudrāks par vakaru! :) ķeršos klāt rīt

Posted

Nū es taisu kā otro variantu :) tā ir vieglāk, pēc tam vienkārši atdali tos atslēgas vārdus un veic kādu vien apstrādi vēlies :)

Posted
Nū es taisu kā otro variantu :) tā ir vieglāk, pēc tam vienkārši atdali tos atslēgas vārdus un veic kādu vien apstrādi vēlies :)

Taisi, taisi tikai padomā par tādām lietām, kā:

1) cik viegli Tev būs saskaitīt cik konkrētam tagam ir rakstu,

2) cik viegli Tev būs saskaitīt cik konkrētam rakstam ir tagu

3) cik viegli Tev būs vienu tagu mazliet updeitot, piemēram, nomainīt TAGS ar TEGS

4) Cik viegli Tev būs izkasīt ārā visus unikālos tagus

5) Cik viegli Tev būs nosakaidrot, kuri 3 (5, 10, N) tagi ir izmantoti visvairāk utml.

 

DB projektēšanas kļūdas, kas ir ielaistas sākumā, ļoti dārgi maksā vēlāk :)

 

Gints Plivna

http://datubazes.wordpress.com

Posted
DB projektēšanas kļūdas, kas ir ielaistas sākumā, ļoti dārgi maksā vēlāk :)

Vai ari vispar nepakljaujas labosanai..

--

taads mazinsh piemers par Db projektesanas kljudam:

ir dots uzprojekte DB tabulu Skolenu atzimju saglabasanai ..

Risinajums 1:

id | skolnieka_id | Atzime |

lauku tipi:

id/ skolnieka_id-> Int (bigInt) UnSignetd (bez negativiem skaitljiem )

atzime --> TYNY INT UnSigned...

---

Itkaa viss pilniibaa OK ..

Bet rodas situacija (kad sistema jau Krietnu laiku nostradajusi.)

Atnak Ministrijas rikojums ka kautkaadaa kontroldarba/ testa atzimes Buus no (-100 liidz 100 )

attieciigi vadot ieksa datus visi negativie skaitli buus 0 / vai posiztivi.....

---

Un tagat izdomajiet kaa izlabot doto kljudu ja sistemai ir pieslegtas 10K skolas ..... un testu aizpildija kadi 500 skoleni...

Vadot ieksa datus kljudu pamanija kadii 50% ....

---

Kursh buus atbildigs par Atkartotu datu ievadisanu ?

--------------------------

Risinajums 2:

tas pats tikai atzimem atvelam lielaku vietu un Neliekam UnSigned....

---

tas taa..

×
×
  • Create New...