Troca de usuario durante uma sessao

Pessoal,

gostaria de saber qual a melhor forma para eu implementar a seguinte função:

eu possuo um banco de usuários, e tenho uma funcionalidade para delegar determinada conta de usuário para algum outro usuário, ou seja, o administrador do sistema pode pegar a conta do joao e delegar para o antonio, se isso for feito o joao não poderá acessar sua conta enquanto o periodo designado para a delegação estiver em ordem.
Já o antonio, ao logar no sistema recebe um link indicando que teve a conta do joao delegada para ele, e poderá se logar como o joão, e então terá todos os privilégios do mesmo…
A troca deverá ocorrer durante uma sessão, ou seja, ao clicar no link, deverá ocorrer a troca.

Possuo a tabela usuário com e a tabela usuarios_delegados… a melhor forma seria abrir um campo nessa tabela para ao cadastrar incluir a senha e login do usuario delegado??
isso ficaria muito estranho, alguem tem ideias??