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 –
USERS
- user_id (primary key)
- user_name
ROLES
- role_id (primary key)
- role_name
USER_ROLES
- user_id (primary key, foreign key to USERS.user_id)
- role_id (primary key, foreign key to ROLES.role_id)