![]() |
![]() |
![]() ![]()
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.
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 |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 14:08 |