Autor Zpráva
Perry
Profil
Chtěl bych, aby každý uživatel viděl na webu v diskuzi, kolik má nepřečtených příspěvků (něco takového jako je diskuze na csfd)

Vymyslel jsem mít 1 tabulku, kam by se ukládalo ID posledního čteného článku, počet nepřečtených příspěvků (aby se to nemuselo pořád počítat) a id tématu. Ale zdá se mi to dost "rozsáhlé". Pro 100 uživatelů a 10 témat bude mít tabulka 1000 záznamů a tak to bude hrozně rychle narůstat...

Nějaké lepší řešení někoho nenapadne ?
AM_
Profil
Pokud chceš ukládat informace o přečtených tématech, stejně to bude narůstat podle počtu uživatelů krát počet témat.

1 tabulku, kam by se ukládalo ID posledního čteného článku, počet nepřečtených příspěvků
nevím, jak to nacpeš do jedné tabulky :) ale na to cachování bych se klidně vykašlal, dobře napsaným dotazem to sečteš raz dva.
Perry
Profil
Do jedné tabulky to nacpu snadno. Sloupce budou: temaID, userID, posledni_ctene_ID, pocet_novych, datum_posledni_navstevy
kdyz nekdo prida prispevek, tak zvetsim pocet_novych o +1, zbytek se nezmeni
AM_
Profil
Jo takhle, špatně jsem tě pochopil.
Nejsem odborník přes databáze, ale sečíst nové příspěvky není tak složitá operace, abys ji musel cachovat, navíc bys tento údaj musel invalidovat pokaždé, když by někdo do tématu něco přidal, a to by bylo spíš náročné - při každé změně tématu měnit záznamy všech uživatelů, kteří toto téma sledují.
Takže já bych prostě ukládal u každé dvojice uživatel-téma jen poslední čtené ID, pokud jsi nikdy nedělal žádný složitější projekt, může ti to připadat neefektivní, ale věř mi, momentálně dělám na software kde se v jednom dotazu běžně spojuje tak deset tabulek, z čehož některé už mají třeba tisíce záznamů, takže si dokážeš představit, do jakých čísel by šel kartézský součin :) tam je teprve potřeba přemýšlet o optimalizaci, než jsem tabulky správně zaindexoval, trvaly některé dotazy i přes 10 sekund.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0