Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> system tagow (powiazan) w newsach
andycole
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


Witam.

Szukam jakis materialow na ten temat, ma ktos moze jakies niepotrzebne linki ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Wiem tyle, ze musza byc 2 tabele:

1st (powiazania, np news 1st i wypisanie jego tagow, nastepny rekord, news 2nd i wypisanie jego tagow itp)

id_news | tagi

2nd (lista zdefiniowanych tagow)

tagi

Jednak czy takie rozwiazanie jest optymalne? Watpie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Z gory dzieki za wskazowki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Denver
post
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

Ostrzeżenie: (0%)
-----


Pierwsze rozwiązanie, które przychodzi mi do głowy, to skorzystanie z jednej tabeli w bazie:
Kod
+--------------------------+
+ news_id | tagi           +
+--------------------------+
+ 1       | ,html,css,php, +
+ 2       | ,xml,rss,      +
+--------------------------+


Parę słów nt. rozwiązania problemu tagów: w bazie trzymałbym listę tagów przypisanych konkretnej wiadomości oddzielonych przecinkami. Oczywiste jest, że tag nie może zawierać przecinka w swojej nazwie, bo rozwiązanie szlak trafi.

Wyszukując wszystkie wiadomości np. o tagu "css", wystarczyłoby jedno zapytanie SQL:
  1. SELECT news_id FROM newsy WHERE tagi LIKE '%,css,%'

Ważne jest, aby w kolumnie "tagi" lista zaczynała się i kończyła przecinkiem, gdyż inaczej pierwszy i ostatni tag z listy nie byłby przez powyższe zapytanie znajdowany.

Co do wydajności powyższego rozwiązania: na pewno zapytanie SELECT ... LIKE nie jest najszybsze, lecz dla małych witryn o niewielkim obciążeniu bazy powinno wystarczyć.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 07:15