Perfil de Usuário, como implementar?

Boa noite pessoal,

Antes de começar a discussão, gostaria de saber se aqui é o lugar correto pra discutir esse assunto ou devo partir para o GUJ Respostas ou outro subfórum.

Obrigado desde já!

Sim aqui, só é bom passar o cenário envolvido.

Obrigado javaflex!

É o seguinte, basicamente estou pensando em como estruturar o banco para esse tipo de coisa.

Discutindo com meu professor, ele deu uma ideia mais ou menos assim:

Tabela Usuário, guardando basicamente um código, login e senha.

Tabela Perfil, guardando código do Perfil, nome do Perfil (que na verdade é o “cargo”, vou explicar melhor abaixo), tendo código de Usuário e código de Menu como chaves estrangeiras.

Tabela Menu, guardando o código do Menu, nome do Menu, se o Menu é visualizável para determinado Perfil e além de visualizar, se é permitido escrita ou somente leitura do Menu.

O cargo é o seguinte, pelo fato da empresa ser pequena, um usuário terá vários perfis, porém a permissão de visualização e escrita virá pelo perfil mais “alto” que ele tiver, exemplo: Gerente Financeiro e Analista Financeiro.

Não parece fazer muito sentido, mas foi a forma que pensei para deixar o sistema expansível.

A visualização do Menu se dá pelo campo menVisualiza, que é char(10) e me dá 5 niveis de menu para permitir visualização ou não:

Menu Principal = 00 ou 01
Submenu1 = 00 ou 01
Submenu2 dentro do Submenu1 = 00 ou 01
Submenu3 dentro do Submenu2 = 00 ou 01
Submenu4 dentro do Submenu3 = 00 ou 01

Criei também o campo menPermissao, que é char(4) e me dá leitura e escrita ou somente leitura, posso até reduzir pra char(1) que deve funcionar.

O que estou postando aqui é o mais o conceito, ainda preciso melhorar as tabelas, campos, adicionar uma maneira de logar data/hora do acesso e tudo mais.

Agradeço qualquer sugestão!

Cara, já tive o mesmo problema que você e como solução, eu implementei a ideia de permitir que o usuário administrador crie perfis, sem a dependência entre eles.

Oque vc pode fazer é transformar o relacionamento de Perfil e Menu em N para N. Dessa forma, você pode deixar cadastrado os Menus da sua aplicação, e ao criar um perfil, o usuário pode ir escolhendo oque é permitido.

Dessa forma, ao montar o menu, você pode fazer a verificação apenas olhando se existe o relacionamento entre o perfil e determinado menu, sem a necessidade de campos adicionais e dependência desses perfís…

Obrigado pela resposta giovanni_dalfre!

É mais ou menos isso que você quis dizer?