I have users who can login on a front-end page, and admins who can login on an admin page.
Should both users and admins be "Users" with different roles, or should they be split in different tables?
Roles should be tracked separately from user accounts, because someone can be promoted (or demoted) over time. Would it make sense in that situation to have two different user accounts, in two different tables? I think not.
Here's the basic structure I'd use -