Lo que podrias hacer es exactamente lo que planteas, entre muchas opciones mas claro esta, manejar un campo estado por ejemplo en tu tabla usuarios cuando el mismo se loguee se cambie a Activo y cuando se desloguee a Inactivo, entonces cuando compares los datos para el login del usuario verificas que el usuario con el password que ha digitado se encuentre en estado Inactivo para iniciar la sesión de lo contrario la cuenta esta en uso, la cuestión sería si el usuario cierra el navegador que la variable cambie de estado. mira este enlace
Diferentes formas de cerrar sesion en PHP
Saludos.