Relacionamento De Tabelas
#1
Posted 05/09/2012, 12:51
Situação atual: Tenho uma Tabela[cliente] com os campos[INT_CLI(código_do_cliente),NM_CLI(nome_do_clinte)
outra Tabela[ligacoes] com os campos[INT_LG(código_da_ligação),NM_CLI(nome_do_clinte),NM_STOR(setor),NM_SRVR(servidor_público),NM_ASSN_LG(assunto),NM_FN(nome_do_funcionário),D_LG(data_da_ligação),H_LG(hora_da_ligação)]
e outra Tabela[servidores] com os campos[INT_SRVR(código_do_servidor),NM_SRVR(servidor)]
Pergunta: Ao entrar no formulário de cadastro tenho os selects onde trazem os dados da tabela [cliente] e [servidor], pois bem, gostaria de criar um relacionamento entre estas Tabelas, onde sempre que efetuar um novo registro de ligação irá buscar os dados da tabela[cliente] vincular com os novos dados inseridos na Tabela[servidores]sendo assim poderá inserir vários servidores para o mesmo cliente(obs, o cliente aqui é poderia ser uma prefeitura).
#2
Posted 05/09/2012, 13:13
Join para seleção de multi-tabelas : http://www.w3schools...ql/sql_join.asp
Da uma procurada de nomenclatura, pois a sua é bem "diferente", é bom usar um padrão, assim fica mais fácil conversar sobre.
Abraços
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .
#3
Posted 05/09/2012, 14:48
Boa tarde, silici0.
Verifiquei as dicas, porém ao executar continuo a mesma marmota.
Segue abaixo a estrutura do meu banco, e a nomeclatura que estou utilizando e a padrão onde trabalho.
Peço ajuda.
banco:controle
DROP TABLE IF EXISTS `cliente`;
CREATE TABLE `cliente` (
`INT_CLI` int(11) NOT NULL AUTO_INCREMENT,
`NM_CLI` varchar(45) NOT NULL DEFAULT '' COMMENT 'Nome da Empresa',
`NM_CID` varchar(45) NOT NULL DEFAULT '' COMMENT 'Cidade',
`NM_BAIRR` varchar(45) NOT NULL DEFAULT '' COMMENT 'Bairro',
`NM_LOGR` varchar(45) NOT NULL DEFAULT ''COMMENT 'Logradouro',
`INT_STR` int(11) NOT NULL DEFAULT '0' COMMENT 'Número',
`NM_CMP` varchar(45) NOT NULL DEFAULT ''COMMENT 'Complemento',
`INT_CEP` int(11) NOT NULL DEFAULT '0' COMMENT 'CEP',
`TEL_CLI` int(11) NOT NULL DEFAULT '0'COMMENT 'Telefone',
`FAX_CLI` int(11) DEFAULT NULL COMMENT 'fax',
`CEL_CLI` int(11) DEFAULT NULL COMMENT 'Celular',
PRIMARY KEY (`INT_CLI`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
-------------------------------------------------------------------
DROP TABLE IF EXISTS `ligacoes`;
CREATE TABLE `ligacoes` (
`INT_LG` int(10) unsigned NOT NULL AUTO_INCREMENT,
`NM_ASSN_LG` varchar(60) NOT NULL DEFAULT '' COMMENT 'Motivo da Ligação',
`NM_CLI` varchar(45) NOT NULL DEFAULT ''COMMENT 'Nome do cliente',
`NM_FNC` varchar(45) NOT NULL DEFAULT ''COMMENT 'Nomoe do Funcionario',
`D_LG` date NOT NULL DEFAULT '0000-00-00',
`H_LG` time NOT NULL DEFAULT '00:00:00',
`NM_STOR` varchar(60) NOT NULL DEFAULT ''COMMENT 'Nome do Setor',
`NM_SRVR` varchar(60) NOT NULL DEFAULT ''COMMENT 'Nome do servidor público',
PRIMARY KEY (`INT_LG`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
-------------------------------------------------------------------
DROP TABLE IF EXISTS `servidor`;
CREATE TABLE `servidor` (
`INT_SRVR` int(11) NOT NULL AUTO_INCREMENT COMMENT,
`NM_SRVR` varchar(60) NOT NULL DEFAULT ''COMMENT 'Nome do servidor',
PRIMARY KEY (`INT_SRVR`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
#4
Posted 05/09/2012, 15:08
Abraços
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .
#5
Posted 05/09/2012, 16:13
Na tabela servidor vc tem que ter um cli_id neh ? Assim vc sabe qual servidor é de qual cliente.. O mesmo para as ligacoes, correto ? Necessário chaves estrangeiras!
Abraços
Certo, criei na tabela servidor o "cli-id" agora como no formulario eu vinculos os condigos, sabendo que também criei as chaves estrangeiras?
Aparece este erro quando tento relacionar as tabelas, presumo FK erradas.
Erro: Cannot add or update a child row: a foreign key constraint fails (`scts`.`ligacoes`, CONSTRAINT `LIGA_CLIENTE` FOREIGN KEY (`INT_CLI`) REFERENCES `cliente` (`INT_CLI`))
#6
Posted 05/09/2012, 17:37
Abraços
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .
#7
Posted 06/09/2012, 08:20
Cria sem o FK e faz um JOIN no select para liga-las, usar FOREIGN KEY so em caso de InnoDB e serve para modo de storage e DELETE querys, acho que não vai precisar!
Abraços
Vou tentar, obrigado pela dica.
#8
Posted 27/07/2013, 07:39
Cria sem o FK e faz um JOIN no select para liga-las, usar FOREIGN KEY so em caso de InnoDB e serve para modo de storage e DELETE querys, acho que não vai precisar!
Abraços
Vou tentar, obrigado pela dica.
Ai broder estou me deparando com problemas parecidos!!
como resolveu afinal???
Sou amador e estou tentando criar um sistema que eu bolei!
Para um sistema que precise de serviços de pedidos, cada pedido é um motoqueiro que pega algo em um ponto-a e leva para ponto-b gerando nivel de status pedido , atendido"em andamento",completo"entregue, estou a dias me deparando com problemas que levo muito tempo pra resolver.
ai pensei em pedir ajuda!
Agradeço desde já!
Attached Files
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)