Ir para conteúdo
Fórum Script Brasil
  • 0

Tabela com regras de acesso [RESOLVIDO]


Suporte HSL

Pergunta

Olá, preciso de uma ajuda com relação a controle de visualização baseado em tabelas no MySQL

 

Tenho uma tabela q controle Documentos, uma tabela de Usuários e uma terceira tabela que carrega as regras, na seguinte estrutura:

 

Docs: IdDoc, Titulo

User: IdUser, Nome, Unidade,Departamento,Cargo

RegrasDoc: IdDoc,Unidade,Departamento,Cargo

 

A regras são multiplas, e alguns campos seriam como ZERO que estaria liberado a todos

 

Docs

idDoc=100 / Titulo=Teste 01

idDoc=101 / Titulo=Teste 02

idDoc=102 / Titulo=Teste 02

Regras

idRegra=1 / idDoc=100 / Unidade=1 / Departamento=1 / Cargo=0

idRegra=2 / IdDoc=100 / Unidade=1 / Departamento=2 / Cargo=1

idRegra=3 / IdDoc=101 / Unidade=1 / Departamento=2 / Cargo=2

idRegra=4 / IdDoc=102 / Unidade=1 / Departamento=0 / Cargo=0

User

id=1 / Nome=Teste1 / Unidade = 1 / Departamento = 1 / Cargo = 1

id=2 / Nome=Teste2 / Unidade = 1 / Departamento = 2 / Cargo = 1

id=3 / Nome=Teste3 / Unidade = 1 / Departamento = 2 / Cargo = 2

 

Diante a td isso :

User id=1 >> Acesso idDoc=100 e 102

User id=2 >> Acesso idDoc=100 e 102

User id=3 >> Acesso idDoc=101 e 102

 

problema é como o bando de dados consultar estes q estão como 0 pois são liberados a todos

Editado por Suporte HSL
Inseri os idRegra
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá! Tudo beleza?
A) Os departamentos e cargos são níveis?
ex.:
cargo 2 = accesso a tudo que tiver cargo[0,1,2] ?

B) Ou acessa somente e apenas o que tiver cargo exatamente igual a 2?

C) O mesmo acontece para departamento?

Link para o comentário
Compartilhar em outros sites

  • 0

Esse banco de dados está comprometido, ele não respeita o princípio da atomização, e assim não há como obter nenhuma informação dele.

O princípio da atomização reza que cada tabela deve conter um tipo de informação.

A tabela Docs informa que existem 3 idDocs, a 100, 101 e 102.

A tabela Regras informa que existem 9 idDocs, a 100 do Departamento 0, a 100 do Departamento 1, a 100 do Departamento 2, a 101 do Departamento 0, a 101 do Departamento 1, a 101 do Departamento 2, a 102 do Departamento 0, a 102 do Departamento 1 e a 102 do Departamento 2.

Ou seja, as tabelas Docs e Regras estão em conflito, um dos dois está errado, ou os dois estão errados. Para impor qualquer tipo de regra no banco de dados, você precisa respeitar as regras do banco de dados, do tipo respeitar o princípio da atomização, sem falar da chave primária da tabela bem como o tipo de dados que eles usam.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, 

A) não são Níveis

B) na verdade você deve se encaixar em qualquer regra, se uma atender você tem acesso

C) são 3 informações que independem uma da outra

 

4 minutos atrás, Frank K Hosaka disse:

Esse banco de dados está comprometido, ele não respeita o princípio da atomização, e assim não há como obter nenhuma informação dele.

O princípio da atomização reza que cada tabela deve conter um tipo de informação.

A tabela Docs informa que existem 3 idDocs, a 100, 101 e 102.

A tabela Regras informa que existem 9 idDocs, a 100 do Departamento 0, a 100 do Departamento 1, a 100 do Departamento 2, a 101 do Departamento 0, a 101 do Departamento 1, a 101 do Departamento 2, a 102 do Departamento 0, a 102 do Departamento 1 e a 102 do Departamento 2.

Ou seja, as tabelas Docs e Regras estão em conflito, um dos dois está errado, ou os dois estão errados. Para impor qualquer tipo de regra no banco de dados, você precisa respeitar as regras do banco de dados, do tipo respeitar o princípio da atomização, sem falar da chave primária da tabela bem como o tipo de dados que eles usam.

Cada tabela carrega com sigo um tipo de informação, Documento, Usuário e Regra que interliga ambas.

Inseri a título de exemplo o idRegra... só demonstrei minha dúvida, a tabela verdadeira existe N campos que não fazem parte da dúvida

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...