Už je zase kompletní schopnost počítat přístupy na stránku

Zase si dělám, co chci, a ne co je důležité. Chtěl jsem mít přehled, kolik lidí navštíví třeba hlavní stránku Apps a kolik Lyrics, ale přístupy pro každý den jsem si ukládal pouze pro stránky, které mají řádek v databázi. Funguje to následovně. Všechny názvy tabulek, co tu vypíšu, jsou smyšlené, ale skutečně existující. Základem je tedy 5 tabulek:

  1. VsechnyStranky – obsahuje všechny stránky – od každé její ID a celkový počet shlédnutí
  2. StrankyDbEntity – obsahuje sloupec ID tabulky, id entity a počet shlédnutí pro každý den
  3. Stranky – obsahuje index ze stránky NazvyStranek a QsArgumenty a počet shlédnutí pro každý den
    1. QsArgumenty – protože databáze má být atomická a šetřím místo, jsou argumenty i názvy stránek v jedné tabulce
    2. NazvyStranek – -||-

Když se načte libovolná stránka, která ještě ten den nebyla načtena, uloží se do tabulky VsechnyStranky a pak podle jejího typu buď do StrankyDbEntity nebo Stranky. Zjistí se z tabulky VsechnyStranky nejvyšší dosažený počet shlédnutí pro stránku a ten se uloží do nového řádku VsechnyStranky – buď o 1 vyšší v případě, že není přihlášen admin, nebo beze změny. Týden a víc staré řádky z prvních 3 tabulek se mažou – po týdnu jsou zbytečné. Takhle mohu rychle zjistit celkový počet shlédnutí za všechny dny, počet shlédnutí dnes a počet shlédnutí za posledních 7 dní(který se ukládá přímo do řádku entity a je náročnější na výpočet – proto ho dávám jen k tabulkám, kde opravdu bude mít smysl.). Má to zatím 2 nedodělky:

  1. Nemaže to stránky z tabulky Stranky(tedy ty které „nejsou“ dynamické)
  2. Nefunguje zobrazení v grafu za posledních 7 dní – na tom budu pracovat dál.

PS: Zatím to je plně implementováno jen na alba webu Photos – vše ostatní bude brzo následovat.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *