RELACIONAMENTO
Existe a Tabela para o cadastro de Funcionários:
id - bigint(12) PRIMARI KEY
nome - char(50) default ''
carcha - char(12) default ''
Existe tbm a tabela para o cadastro de equipamentos:
id - int(2) PRIMARI KEY
nome - char(50) default ''
tá é o seguinte, preciso armazena de o funcionario tem acesso ou não tem acesso ao equipamento
estava fazendo o seguinte:
toda vez que fosse add um novo equipamento
era criado um novo campo na tabela funcionarios
dizendo se aquele determinado funci tem acesso
no equipamento, e quando eu excluo o equip. ele
apaga o campo da tabela funcionario.
existe uma forma de fazer este relacionamento mais fácil?
uso mysql 5.0 e ADO
id - bigint(12) PRIMARI KEY
nome - char(50) default ''
carcha - char(12) default ''
Existe tbm a tabela para o cadastro de equipamentos:
id - int(2) PRIMARI KEY
nome - char(50) default ''
tá é o seguinte, preciso armazena de o funcionario tem acesso ou não tem acesso ao equipamento
estava fazendo o seguinte:
toda vez que fosse add um novo equipamento
era criado um novo campo na tabela funcionarios
dizendo se aquele determinado funci tem acesso
no equipamento, e quando eu excluo o equip. ele
apaga o campo da tabela funcionario.
existe uma forma de fazer este relacionamento mais fácil?
uso mysql 5.0 e ADO
Amigo vc nao pode criar uma tabela relacional ?
Onde conste Id do equipamento e ID do funcionario que possui acessso.
Assim ficaria mais rapido e facil nao ?
Onde conste Id do equipamento e ID do funcionario que possui acessso.
Assim ficaria mais rapido e facil nao ?
Crie uma tabela "PERMISSAO"
CREATE TABLE PERMISSAO (
idFunc bigint(12) NOT NULL,
idEquip int(2) NOT NULL,
PRIMARY KEY(idFunc,idEquip));
A cada insersão de Funcionário, tu relaciona com os equipamentos que ele pode ter acesso, preenchendo essa tabela "PERMISSAO".
Att
Charles
CREATE TABLE PERMISSAO (
idFunc bigint(12) NOT NULL,
idEquip int(2) NOT NULL,
PRIMARY KEY(idFunc,idEquip));
A cada insersão de Funcionário, tu relaciona com os equipamentos que ele pode ter acesso, preenchendo essa tabela "PERMISSAO".
Att
Charles
isso funciona sim... e é bem mais rápido, mas na hora do relatório tenho que exibi assim
funcionario equipamento1 equipamento2 equipamento3
fulano de tal s n s
funcionario equipamento1 equipamento2 equipamento3
fulano de tal s n s
Na hora de montar o relatorio vc tera que realizar um select pegando todos os equipamentos quando ID for igual a X depois salve os resultados em variaveis e\ou exiba-as diretamente.
No caso do relatório, não vejo dificuldade em fazer do jeito q tu tá falando. O layout do relatório tanto faz, a sua query na tabela "PERMISSAO", trará para vc apenas os registro na qual o funcionário tem permissão. Vc teria q fazer um UNION com os registro q NÃO atende tem permissão.
Ou se tu preferir, tu muda a tabela para:
CREATE TABLE PERMISSAO (
idFunc bigint(12) NOT NULL,
idEquip int(2) NOT NULL,
permitido_uso bit not null,
PRIMARY KEY(idFunc,idEquip));
E faz uma trigger para que a cada inclusão de funcionário ele preencha essa tabela com o campo "permitido_uso" = 0 (Não por exemplo) .
E a partir daà sua interface q faria a exibição dos equipamentos para que vc marque qual está permitido. Resumindo, a query ficaria mais fácil de fazer, porém tu teria q fazer uma trigger na inclusão de um novo funcionário e equipamento.
Att
Charles
Ou se tu preferir, tu muda a tabela para:
CREATE TABLE PERMISSAO (
idFunc bigint(12) NOT NULL,
idEquip int(2) NOT NULL,
permitido_uso bit not null,
PRIMARY KEY(idFunc,idEquip));
E faz uma trigger para que a cada inclusão de funcionário ele preencha essa tabela com o campo "permitido_uso" = 0 (Não por exemplo) .
E a partir daà sua interface q faria a exibição dos equipamentos para que vc marque qual está permitido. Resumindo, a query ficaria mais fácil de fazer, porém tu teria q fazer uma trigger na inclusão de um novo funcionário e equipamento.
Att
Charles
essa forma é a que ja é feito... tava pensando se teria uma forma de criar um relacionamento e na hora do relatorio eu desse um select so
Tópico encerrado , respostas não são mais permitidas