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á!
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?