Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JOIN parametryczny, słowa kluczowe + 5 typów zawartości
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Dodaję obsługę słów kluczowych. Z mapą/listą tagów nie ma problemu, ale schody zaczynają się, gdy chcę wyświetlić elementy, które mają przypisane konkretny tag.
  1. SELECT TYPE,ID FROM tags WHERE tag = 'security'

Uzyskam TYP oraz ID elementów, ale brakuje tytułu, kategorii i ewentualnie opisu. Pewnie powiecie - JOIN załatwi sprawę. Istnieje 5 typów elementów (albo więcej), każdy ma swoją własną tabelę, np. arts, files, news...

Czy da się łączyć tabele wg warunku - na przykład gdy TYPE=1, łączymy z "arts"? W SQLite próbowałem CASE, ale wyskakuje błąd. Nie sprawdzałem w MySQL.

Ewentualnie: jazda 5 zapytań albo zastosuj UNION.

Dodatkowo trzeba sprawdzić, czy element jest włączony oraz czy kategoria, do której należy element, jest włączona (w osobnej tabeli cats, a więc dodatkowy JOIN jest nieunikniony).

Ze względu na tak skomplikowane operacje warto tworzyć CACHE, jednak liczę na sugestie związane z powyższym.

Ten post edytował WebCM 26.02.2010, 22:33:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Riklaunim
post
Post #2





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Opanuj się trochę (IMG:style_emoticons/default/winksmiley.jpg) . Zapytania nie są kosmicznym wysiłkiem. Od lat relacyjne bazy danych te zapytania obsługują i internet jakoś się nie zawalił. Chcesz to optymalizować? To napisz stronkę w HTMLu i odpal na serwerze napisanym w asemblerze.... bo przecież ten Pehap i te okrutne zapytania SQL są takie obciążające dla serwera.
Jak chcesz skrypt ogólnoużytkowy na darmowe i tanie hostingi współdzielone, to raz że o wykorzystanie skryptu do stron o jakimś ogromnym ruchu nie musisz się martwić w początkowych latach istnienia projektu, a dwa że na takich hostingach nie masz dostępu do narzędzi jakie są wykorzystywane do skalowanie dużych serwisów na lepszych platformach hostingowych (memcache, gearman, sphinx/lucene/solr, czy też układy wieloserwerowe z load balancerem, czy replikacją bazy danych).


Notka: nie używaj subselectów (mają naturę do nie używania indeksów), wykonaj je oddzielnie i wstaw gotowe listy do tego zapytania.

Ten post edytował Riklaunim 27.02.2010, 14:25:05
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: 4.10.2025 - 14:08