We are discussing in team regarding best practices.For eg. there are three tablesUsersGroupsTeamsA user will create a request to join a Team or Group or to follow a Private User.A request actions will be:CreateApproveRejectCancelThis process will be almost same for all kind of requests.The question is: Is it a good approach to have all kind of requests in one table in database?i.e.+----+----------+--------+-----------------+---------+----------+----------+-----------+----------+-----------+-------------+| id | uid_from | uid_to |      type       | created | accepted | rejected | cancelled |  status  | parent_id | parent_type |+----+----------+--------+-----------------+---------+----------+----------+-----------+----------+-----------+-------------+|  1 |        1 |      2 | GROUP_MEMBER    |         |          |          |           | ACTIVE   | group_id  | GOAL        ||  2 |        1 |      2 | GROUP_MODERATOR |         |          |          |           | REJECTED | group_id  | GOAL        ||  3 |        1 |      3 | PROFILE_FOLLOW  |         |          |          |           | ACTIVE   | -         | USER        ||  4 |        1 |      2 | TEAM_MEMBER     |         |          |          |           | APPROVED | team_id   | TEAM        ||  5 |        1 |      4 | GROUP_INVITE    |         |          |          |           | ACTIVE   | group_id  | GOAL        |+----+----------+--------+-----------------+---------+----------+----------+-----------+----------+-----------+-------------+Or User, Team, Group all should have separate tables for request handling?
Best Practice regarding table schema
database;database design;sql;rdbms