Formas de hacerla, MIL.
Te voy echando capotes, tu los meditas, discurres y si te interesan los aplicas
Piensa cuantos usuarios va a tener el portal, y de entre ellos, cuantos administradores y cuantos usuarios normales. El porqué de esta pregunta es para dividir tu tabla personas en dos tablas: usuarios y administradores, ya que si tienes muchos usuarios, imaginemos 1000, si quien accede al sistema es un administrador, cuyo número es mucho más bajo, digamos 5, y están todos en la misma tabla la consulta será más pesada.
Lo de poner una tabla para cargos y otra para personas lo usaría si tienes pensado declarar variables de sesión $_SESSION['cargo'] = "Admin" $_SESSION['cargo'] = "User", con lo que muestras o no más información simplemente comprobando esta variable, de otra forma siempre tendrás que hacer consultas con el JOIN para saber si el usuario que tiene detrás el portal es de un rol u otro, y provocará que sea un proceso más lento. Ojo que si usas variables de sesión, tienes que ir con ojo de gestionarlas bien, o provocarás más de un agujero de seguridad serio.
Si que te recomiendo que hagas, antes de seguir con nada más, es que te mires algo de Ingeniería del Software y pierdas un par de tardes en planificarte bien qué es lo que vas a abarcar. De lo contrario, te doy 1 semana para que se te vaya de las manos... te habla la experiencia xD
Y como te digo... habrá mil formas de hacerlo y mil formas de implementarlo... pero es lo que yo haría, así de primeras, teniendo en cuenta que desconozco sobre qué te mueves y sin planificar requisitos antes.
Espero que te sirva!!