We do not use Oracle, thus I could not provide the queries for it. Can anyone interested in this functionality and using Oracle, contribute them?
I would like to help you. I'm implementing this features on uned http://dev.innova.uned.es/foros/forum-view?forum%5fid=29818
I've began to port this funcionality to oracle, such as you've done.
I had written this feature using views and I store if a message is visited when someone calls to row.tcl
I'm losting some information using views, because I can't know when the thread was viewed, but perhaps the worst problem is that when someone want to know if a thread is read, we must to do a count and it maybe not very fast if the thread is large. What do you think about it?
You say that you cannot know when the thread was viewed. But in the datamodel I see that there is a field last_viewed in table views, and also it is not that important when it was viewed, but if it was viewed.
I do not understand either why you say that you have to do a count to know if a thread is read. But it seems important to me to store the number of read threads per forum in a denormalized table, as my code does in table forums_reading_info_user.
I think that we could use the views package instead of table forums_reading_info, but still use table forums_reading_info_user (possibly with another name) for storing the count of read threads.