I just have a general database theory question. I have a need to make something similar to showing what posts/items a user has viewed or not (such as in a forum) or an unread email message. What I have is there are posts that multiple users can view, but it needs to separate by user who has actually viewed it. So if User A viewed Post 1, it would no longer show that Post 1 is a new item to view, but to User B, it would still show that Post 1 is a new item to view.
I’ve search for other ideas and one of them is to get a timestamp of when the user last logged in, but I actually need to keep track of the posts they’ve seen as opposed to posts that have happened since they last logged in.
I would like a MySQL database solution if possible, but I’m open to cookies if that is a must. I could do this on my own and just figure it out, but I’d appreciate any advice on how to properly structure a table(s) to make this the most efficient. Also, bandwidth and storage is not issue.
While reviewing the relevant schema for phpBB, I found the following:
And:
Then I look here in their wiki:
So essentially they have a lookup table to store the data associated with a user’s viewing of a topic (thread), and then check it against the timestamp in the forum view table, to determine whether the topic has been viewed by the user.