Návštěvy se teď ukládají trochu jinak

Do teď jsem ukládal veškeré souhrnné návštěvy do tabulky Pages, pak jsem měl ještě další tabulky, které například obsahovaly návštěvy uživatele z jednotlivých dnů nebo návštěvy z dané IP bez ohledu na přihlášení uživatele – taky z jednotlivých dnů. Toto se ale stávalo čím dál tím více pomalé a to ty tabulky návštěvnosti byly ještě skoro prázdné, asi jen 1500 záznamů.

Zapříčinilo to, že každá stránka se identifikovala podle své vlastní adresy a hledat nejdříve v tabulkách PagesArgument a pak PagesNames a podle dohledaných ID pak hledat ještě ID stránky v Pages a dále s ním pracovat, to všechno celou věc dost zpomalovalo. Proto jsem vytvořil tabulku Pages, která obsahuje všechny ID stránek a k nim zda se mohou vkládat komentáře+zda více informací obsahuje tabulka Pages1 nebo Pages2 a dále tabulky Pages1 a Pages2.

Pages1 jsou skoro stejné jako předchozí Pages, jen neobsahují ten sloupec zda se do stránky mohou přidávat komentáře. Teď do nich ukládám všechny stránky, které nemají žádný query string, to znamená že třeba i stránky 👻 RIP – tenhle server nepřežil ani vlastní hosting.8 Metro Controls, kde to je řešeno ty parametry skrze „hezkou“ uri. Pages2 stejně jako Pages1 obsahuje ID stránky, které je v Pages a k tomu ID skupiny entit a entity samotné. Proto je teď o hodně rychlejší ve stránkách s proměnným parametrem v URI zjistit počet návštěv celkově – stačí jen se dotázat DB s ID skupiny entit a dále ID Entity. ID entity může být jen Int nebo nižší datový číselný typ.

Toto celé, tedy tabulky Pages, Pages1 a Pages2 jsem udělal abych mohl používat jednotný kód pro komentáře na vlastním webu, který si zjišťuje zda se pro stránku mohou vygenerovat komentáře právě tak jestli v tabulce bude tato stránka existovat.

EDIT Den poté, 24.1.2015: Teď už konečně jde vkládat komentáře i na stránkách s dynamickými parametry. Zkoukněte to třeba na této 👻 fotce – Odkaz vede do prázdna – a to doslova.. Samozřejmě abyste mohli přidávat komentáře, musíte být přihlášeni. 💬

Napsat komentář

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