Я хотел бы знать, является ли хорошей практикой создание разных таблиц уведомлений
Я бы сказал, нет, запрос на отправку в друзья не является уведомлением, потому что пользователь может принять его или нет.
Когда пользователь A попросит друга B, у вас будет два объекта:
- запрос на добавление в друзья, который может быть принят или отклонен
- уведомление (типа NewFriendRequest) для пользователя B, которое информирует пользователя о запросе на добавление в друзья