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
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
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.
Kajman_
Profil *
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.

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