Suporte HSL Postado Novembro 19, 2022 Denunciar Share Postado Novembro 19, 2022 (editado) Possuo duas tebelas User - coduser (int PK), depart_cod (int), cargos_cod(int), funcoes_cod(int) Regras - idview (int PK), depart_cod (int), cargos_cod(int), funcoes_cod(int) Objetivo durante a consulta na tabela regra retorne os usuários que atendem as regras, porém poderá ter regras possuem uma condição 0 aceitando todos, ou seja, regra idview 26 qualquer usuários do departamento 142 deverá ser relacionado. Resultados esperados por cada regra: idview 30 = coduser: 40,44 idview 26 = coduser: 1,45 idview 27 = coduser: 1 idview 29 = coduser: 30 idview 28 = coduser: 30 Editado Novembro 19, 2022 por Suporte HSL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Novembro 20, 2022 Denunciar Share Postado Novembro 20, 2022 (editado) As duas tabelas não respeitam o princípio da atomicidade, cada tabela deveria guardar apenas um tipo de informação. Ninguém é capaz de dizer qual a diferença do depart_cod da tabela user do depart_cod da tabela regras. O nome disso é ambiguidade, duas tabelas diferentes apresentam informações diferentes, e assim fica difícil fazer o banco de dados funcionar. Para fazer as tabelas funcionarem no mundo do banco de dados é preciso informar qual a relação que existe entre as tabelas. O que a tabela user tem a ver com a tabela regras? Geralmente a chave primária de uma tabela é a chave de referência em outra tabela, e assim é possível impor a intregridade referencial. Sendo assim, não dá para tirar nada dessas tabelas senão informações que você não quer tipo: select idview, coduser from user, regras where user.depart_cod=regras.depart_cod; 26 1 27 30 select idview, coduser from user, regras where user.cargos_cod=regras.cargos_cod; 28 30 27 30 30 40 30 44 select idview, coduser from user, regras where user.funcoes_cod=regras.funcoes_cod 28 30 No nosso mundo, usuário é uma coisa, regra é outra coisa. O usuário tem nome, documento de identidade e endereço eletrônico. Regra é uma imposição, tipo "só quem tem mais de 18 anos pode ver Netflix". Nesse caso, é possível consultar o banco de dados, verificar o documento de identidade, e listar todos os usuários que nasceram antes de 2004. No seu caso, apenas uma tabela basta, o user, além do nome, documento de identidade, endereço eletrônico, você pode acrescentar uma credencial, que vai de 1 até 3. As regras são definidas fora do banco de dados, do tipo PHP <?php $idusuario=$_GET['idusuario']; $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select idusuario, credencial from tbusuario where idusuario=$idusuario"); $credencial=$query->fetch_assoc( )['credencial']; if($credencial==1){echo "você pode ver Sessão da Tarde";} if($credencial==2){echo "você pode ver Vale a Pena Ver de Novo";} if($credencial==3){echo "você pode ver Netflix";} Editado Novembro 20, 2022 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tushar Joshi Postado Março 22, 2023 Denunciar Share Postado Março 22, 2023 https://rosalind.info/users/wishterrain/ SSC MTS Reasoning Previous Year Questions Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Suporte HSL
Possuo duas tebelas
User
- coduser (int PK), depart_cod (int), cargos_cod(int), funcoes_cod(int)
Regras
- idview (int PK), depart_cod (int), cargos_cod(int), funcoes_cod(int)
Objetivo durante a consulta na tabela regra retorne os usuários que atendem as regras, porém poderá ter regras possuem uma condição 0 aceitando todos, ou seja, regra idview 26 qualquer usuários do departamento 142 deverá ser relacionado.
Resultados esperados por cada regra:
idview 30 = coduser: 40,44
idview 26 = coduser: 1,45
idview 27 = coduser: 1
idview 29 = coduser: 30
idview 28 = coduser: 30
Link para o comentário
Compartilhar em outros sites
2 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.