Suporte HSL Postado Novembro 10, 2022 Denunciar Share Postado Novembro 10, 2022 (editado) 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 Novembro 19, 2022 por Suporte HSL Inseri os idRegra Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Novembro 10, 2022 Denunciar Share Postado Novembro 10, 2022 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Novembro 10, 2022 Denunciar Share Postado Novembro 10, 2022 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Suporte HSL Postado Novembro 10, 2022 Autor Denunciar Share Postado Novembro 10, 2022 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Novembro 10, 2022 Denunciar Share Postado Novembro 10, 2022 Ok, entendi. Como eu não sei qual é a chave primária das tabelas, eu não tenho como lhe ajudar. Sinto muito. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Suporte HSL Postado Novembro 19, 2022 Autor Denunciar Share Postado Novembro 19, 2022 Resolvido, inclui nas pesquisa a regra in (Valor , 0) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Suporte HSL
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 HSLInseri os idRegra
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.