The way I would approach this task is by breaking the data you are recording into manageable and logical chunks (although this is influenced by the amount of usage and the actual information you are wanting to pull out).
For instance, if the situation is that you are recording the following types of data:
- user information (email, id, name etc)
- videos (id, title, filename etc)
- videos watched (video_id, user_id, time_watched_for)
Then it may make sense to store the data in separate tables so that the information is separated in a meaningful way.
So in that sense it would also make sense to have you initial table for notifications (although this looks more like a notification logs table):
- notification table (id, receiver_id, sender_id, action, action_type,
entity_id, timestamp)
Essentially, storing the data in a separate table isn't a bad idea, as long as there is a meaningful or logical reason to store it there such as logical data separation.