Dear Burger,

sorry for this late reply. I was very busy during the last days...

On your suggestions...π

I do not think that your suggested implementation is an optimal solution:
  • Never store useless data to the database
  • Inserting rows on the fly costs nothing. The new rows have only to be added, if current_user accesses some few pages (taskView, projView etc.)
  • Checking if an item has been viewed is fast, because it's just checking if there is one row matching (item== id and person == cur_user->id)
  • Rolling out the table will tremendously slow down creation of new items if there are many users.
  • I don't see why this table should be reduced to certain item types. I just would implement it for all items and later decide if to display this information. I might be useful to see, if a person has downloaded a file.
  • This table is not involved in any user rights checking. It should only be used by other functions to get additional information on an item that already has been approved to as being visible.
  • Due to the already existing DB-Tables I would call this table itemperson.
Although I love the idea of highlighting new items as bold I see some problems with the already existing display style in Clean Theme. Bold is already used at many other places, so this would lead to some inconsistency. I would rather introduce a "visited link color" which is also some how a standard ;-) Alternatively we could highlight new items. But this is only a matter of CSS...

Sorry for this erm... negative feedback. But I really would love you to implement this feature, though.

I will write some more details on a suggested implement in the task's description.