Esse por foi pedido pelo Kilderson Sena da Artigos & Tutoriais de onde faço parte mas ainda não postei nada 😛 .
Bom, ja fiz alguns sistemas em PHP com MySql e é claro precisavam de algum tipo de segurança, alguns com níveis de acesso que eu chamo de Perfil. Para começar devemos primeiro pensar na Aplicação, utilizarei como teste uma aplicação com nível de acesso por Telas.
Primeiro teremos uma tabela com as Telas do sistema “tb_tela”:
tla_id INT not null auto_increment primary key
tla_nome VARCHAR(45) not null
Só isso, um código para a tela, e um nome para a mesma, você deverá utilizar esse nome e código para a geração do menu.
Agora a tabela de Usuários “tb_usuario”:
usr_id INT not nullauto_increment primary key “Código do usuário”
usr_login varchar(20) not null “Nome de usuário, utilizado para logar”
usr_senha varchar(100) not null “Senha, de preferência utilize MD5”
prf_id INT not null “Código do perfil logo a baixo tem a tabela”
Pra deixar melhor, você pode criar um índice único no campo usr_login para que não ocorra de cadastrar usuários com logins idênticos, imagina dois “admin” ?
A tabela de Perfil onde são cadastrados os Níveis de acesso “tb_perfil”:
prf_id INT not null auto_increment primary key
prf_nome varchar(45) not null
Agora o relacionamento entre Tela e Perfil gerando um acesso válido “tb_permissao”:
prm_id INT not null auto_increment primary key
tla_id INT “código da tela”
prf_id INT “código do perfil.”
Ok, não entendeu patavinas? eu explico.
Cada usuário tem um perfil (tb_perfil), cada tela do seu sistema esta cadastrada na tb_tela.
Ao criar um relacionamento entre perfil e tela automaticamente eu crio uma permissão para esse perfil a essa tela.
Agora você pode usar sua linguagem de preferência e aplicar a logica ao modelo.
Abraços
Kleber Taliba Martins