ďťż

[PHP MySQL] Rozwiązanie problemu - 2 tabele

       

Podstrony


telcocafe

Chciałbym poradzić się szanownych forumowiczów, którzy mają już za sobą większe projekty w PHP.

Chodzi o napisanie jak najbardziej optymalnego kodu, który ma wyświetlać najwyżej ocenione filmy na mojej stronie.
Struktury tabel:

Tabela ir_ratings
id object user rate
26 movies_54 1 4
27 movies_86 1 3
28 movies_94 1 4

Tabela ir_movies
id cat_id title content img_mini user views accept

Chciałbym wyciągnąć pięć najwyżej ocenionych filmików. Pojedyncze oceny sprawdzałem na podstawie średniej (AVG) przy pobieraniu z bazy danych. Teraz jednak nie będzie to zbyt optymalne. Przy powiedzmy 3 tysiącach filmików i 15 tysiącach sprawdzałbym najwyżej ocenione filmiki pewnie z pół minuty, a to stanowczo za długo. Jeżeli o czymś zapomniałem, zapytacie.



Nie wiem, ale ja bym rozwiązał problem tak:
tabela z filmami (ir_movies):
[...] | marks_count | marks
[...] | 666 | 1332

I w marks_count masz ilość ocen (czyli ile razy oceniali użytkownicy), a w marks sumę ocen. I teraz można łatwo zrobić średnią arytmetyczną :)

A zapytanie? Z użyciem podzapytań może się da sklepać je :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.