Just some brainstorming for a potential db model to replace recent changes
table:changes
- change_id
- user_id
- page_id
- timestamp
table:changes_tags
- tag_id
- tag_change_type (tag, untag, define)
- ...
table:changes_comments
- comment_id
- comment_change_type (new, edit, delete)
- ...
table:changes_permission
...
table:changes_resources (attachments+properties)
...
table:changes_user
...
Access patterns
- changes site-wide
- changes by a user
- changes for a page (and its subpages!)
- changes for pages 'favorited/starred/subscribed to' by a user
- changes affecting multiple pages should be connected and groupable. This includes cascade permission changes, page moves, page deletes
- paging support
- filtering support (change type, date range, language, namespace, etc)
- aggregation support (by day)