Será que eu entendi direito?(Tomcat Realm)

Estava estudando aqu sobre o DataSource realm no modo Form-based de
autenticação do tomcat e estava analisando o esquema que ele usa pra
autenticar um usuario de uma tabela.
No exemplo do userguide,a estrutura das tabelas é essa aqui:

create table users (
 user_name         varchar(15) not null primary key,
 user_pass         varchar(15) not null
);

create table user_roles (
 user_name         varchar(15) not null,
 role_name         varchar(15) not null,
 primary key (user_name, role_name)
);

Quer dizer ,uma tabela de usuarios com o login(varchar) sendo chave primária,
e uma tabela associativa de roles trazendo 2 campos varchar como chave.

Quando colocamos o login e senha na pagina ele compara o login com a
chave da tabela de usuarios ,pega a role,compara coma tabela de roles
e dá o devido acesso para aquele usuario.

Isso elimina a possibilidade de eu ter uma tabela de usuario e roles
com codigos como chave primaria??
Não teria nenhum metodo pra definir melhor a estrutura dessas tabelas
,já que colocando descricoes como chave primário eu não consideraria a
estrutura mais adequada pra isso!!?
Ou será que a arquitetura dele é mais flexivel e não está documentado?