Stefan: Markierung gelesenen Beiträge (Flags setzen)

Beitrag lesen

Hi,

hier das SQL Statement, habs mal auf Basis eines Forums gemacht, dh. es gibt Boards, Threads und Posts. Dieses Query sollte eine Liste über alle in einem Thread befindlichen Posts zeigen. Die sortierung erfolgt über posts.posy und die einrückung über posts.posx (damit spart man rekursion):

SELECT
 posts.id,
 posts.posx,
 posts.posy,
 posts.topic,
 posts.time,
 users.username,
 IF(NOT NULL postviews.time, postviews.time, 0) as viewed
FROM
 posts
LEFT JOIN
 users
 ON posts.username=users.username
LEFT JOIN
 postviews
 ON posts.id=postviews.postid
 AND postviews.username='$username'
WHERE
 posts.boardid='$boardid'
 AND posts.threadid='$threadid'
ORDER BY
 posts.posy ASC,
 posts.time ASC;

Passt doch so, oder?
Sollte schneller laufen als wenn ich da etwas mache wie:

(IF(posts.postid<60, postviews.mask60 & POW(2,postid)=POW(2,postid), IF(posts.postid<120, postviews.mask120 & POW(2,postid-60)=POW(2,postid-60), postviews.mask180 & POW(2,postid-120)=POW(2,postid-120)))) as readed

Wobei hier in der postviews-table drei felder sind mit jeweils 60 Zeichen mit 1 oder 0 (True | False) und das mir sogar noch die max. anzahl an posts / thread auf 180 beschränkt.

Oder was denkt ihr?! :)

Gruss
Stefan