Autor | Zpráva | ||
---|---|---|---|
Taps Profil |
Zdravím, potřebuji vytvořit forum, ve kterém se bude registrovanému uživateli zobrazovat počet nepřečtených příspěvků. Je podle vás níže uvedená struktura tabulek správná ? Případně jak by jste problém řešili vy ? a také mě zajímá jak by jste prováděli přepočet příspěvků v případě že bude nějaký příspěvek smazán či přesunut do jiného diskusního vlákna
CREATE TABLE `diskuse_prispevky` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `id_diskuse` smallint(6) DEFAULT NULL, `reakce` smallint(6) DEFAULT NULL, `id_autora` smallint(6) NOT NULL, `prispevek` text COLLATE utf8_czech_ci NOT NULL, `datum` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `zobrazit` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL, `mailem` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL, `test` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL DEFAULT 'ne', PRIMARY KEY (`id`), KEY `datum` (`datum`), FULLTEXT KEY `prispevek` (`prispevek`) ) ENGINE=MyISAM AUTO_INCREMENT=2526 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; CREATE TABLE `diskusePrecteno` ( `id_ctenar` smallint(6) NOT NULL, `id_diskuse` smallint(6) NOT NULL, `precteno` smallint(6) NOT NULL ) |
||
Alphard Profil |
#2 · Zasláno: 6. 9. 2011, 01:34:39
Tady na fóru se myslím přečtená vlákna ukládají do cookies. Funguje to i neregistrovaným, ale zase jenom v jednom prohlížeči (pokud se nepoužívá nějaká synchronizace). Maximální délka je omezená, ale informace o starých vláknech se zahazuje, koho to zajímá...
V tvém návrhu je id_diskuse , ale ne id_prispevku , jak je řešená nová odpověď, přepsáním atributu precteno , smazáním? Mně se ten sloupec precteno zdá zbytečný, když existuje existuje záznam, je to přečtené.
Návrh záleží, jestli jde jen o počet, nebo třeba i zvýraznit nové příspěvky, pak by bylo potřeba ukládat poslední přečtený příspěvěk. |
||
Taps Profil |
#3 · Zasláno: 6. 9. 2011, 17:49:49
Alphard:
id_prispevku=id. Pokud někdo reaguje na příspěvek tak se id příspěvku, na který dotyčný uživatel reaguje zapíše do sloupce reakce. Do sloupecku precteno ukládám celkový počet příspěvků při poslední návštěvě uživatele. Pak rozdíl mezi countem id_diskuse a precteno= počet nepřečtených příspěvků. Také mě zajíma jak by byl řešen přepočet příspěvků v případě když nějaký příspěvek smažu. |
||
Časová prodleva: 7 dní
|
|||
Kajman_ Profil * |
#4 · Zasláno: 13. 9. 2011, 16:05:03
Ve zdejsi diskusi je to připraveno takto:
user_id mediumint(8) unsigned topic_id mediumint(8) unsigned read_posts smallint(5) unsigned NULL pocet drive prectenych prispevku read_date datetime NULL datum posledni navstevy (pro promazani tabulky) Kdy read_date je používáno právě pro mazání příspěvků, kdy se z read_posts odečtou jen ty mazané, které byly napsané před jeho posledním čtením. |
||
Časová prodleva: 13 let
|
0