Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Uusi uutinen foorumissa

Shintaja [12.07.2007 18:18:38]

#

Oisko kellään ideaa miten toi kun postaa uutisen, niin se pistää muille siihen viereen esim. New kuvan, että miten se ois tehty. Tiiän kyl yhen tyylin pistää jokaselle profiilille tiedot jokasesta topikista mutta se tappais mysql kylläkin..

Antti Laaksonen [12.07.2007 19:41:11]

#

Eli uutinen näkyy uutena kaikille niille, jotka eivät ole sitä lukeneet? Ei siinä oikein muu auta kuin pitää kirjaa joko niistä, jotka eivät ole lukeneet uutista, tai niistä, jotka ovat lukeneet uutisen, ja kyllä tuohon saa menemään runsaasti tilaa. Käytännössä varmaan kannattaa järjestää niin, että jonkin ajan kuluttua lukematonkin uutinen muuttuu kaikille vanhaksi.

Ehkä on parempi merkitä muistiin uutisen lukeneet, koska keskustelussa on usein paljon rekisteröityjä tunnuksia, jotka eivät ole enää käytössä. Jos kuukaudessa tulee 150 uutista, keskustelussa on 500 vakituista käyttäjää ja kuukauden jälkeen uutinen on kaikille vanha, tauluun tulee pahimmillaan 150 * 500 = 75000 riviä, mikä ei ole vielä aivan mahdoton määrä.

Shintaja [12.07.2007 19:46:50]

#

joo-o on kait pakko tehä sitten niin, mutta vois säätää sen niin että ne jotka ei oo ollu esim 8kuukautteen online ei tuu enään uusia viestejä ja 2kuukauden wanhat viestit ei näy enään uusina.. Pitäis säästyä vähän ettei tuu jumalaton määrä rivejä

Niko [13.07.2007 00:30:15]

#

Itellä on saman tapanen, mutta näyttää onko uusia kommentteja

MySQL:

SELECT <kentät>, CASE WHEN MAX(kommentti.aika) > IFNULL(luettu.aika, 0) THEN 1 ELSE 0 END AS uusia
FROM <uutiset>
	LEFT JOIN <luetut> AS luettu ON (luettu.id_uutinen = uutinen.id_uutinen
		AND luettu.id_member = <kayttajan id>)

luetut taulussa on PRIMARY KEY (id_uutinen, id_member) ja lisäksi aika kenttä

ja kommentti sivulla

REPLACE INTO <luetut>
	(id_member, id_uutinen, aika)
VALUES
	(<kayttajan id>, <uutisen id>, <aika>)

tietysti, jos et tartte kuin uutisille, niin et tartte id_uutinen kenttää.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta