Nu vispār var jau taisīt cached-variantu... tobiš...
- pie preču pievienošanas pārskaita skaitu un pieraksta skaitu klāt kategorijai... vēlāk vnk selektējot nemaz nevajag neko joinot/skaitīt.
- ja notiek preču multi-inserti (vairākas preces), palaist pārskaitīšanas jobu uz visām affected-kategorijam...
Kas jāzidara:
jāuzraksta rekursīvā f-ja, kas skaita un updeito kategoriju sākot no apakšas (storētā vai PHP)
Risinājums ir šāds:
1.) SELECT kat_id, count(prece_id) FROM preces GROUP BY kat_id
* tāpēc, ka lai neveidotu N-query uz katru kategoriju, ja būs rekursīvs updeits
2.) FOREACH kat_id DO update_kategorija(kat_id,preces_cnt)
3.) rekursīvs updeits kategorijām kuram ir N-childi (tiks skaitiits kopaa tikai kategoriju lauks precu_skaits)
* 1. un 2. var būt iekš vienas procedūras