Jump to content


Photo

Relacionamento De Tabelas


  • Faça o login para participar
7 replies to this topic

#1 guikassio1

guikassio1

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 05/09/2012, 12:51

Boa tarde a todos, gostaria de uma ajuda devido minha pouca experiência na linhagem php e banco mysql.

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 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 05/09/2012, 13:13

Normalização de dados : http://pt.wikipedia....ação_de_dados

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
Procurando freelancer
***********************************************
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 guikassio1

guikassio1

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 05/09/2012, 14:48

Obrigado, irei conferir os links.

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 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 05/09/2012, 15:08

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
Procurando freelancer
***********************************************
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 guikassio1

guikassio1

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

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 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 05/09/2012, 17:37

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
Procurando freelancer
***********************************************
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 guikassio1

guikassio1

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

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 Magnifico

Magnifico

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Florianópolis
  • Interesses:Web designer, php, css, java script,

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

  • Attached File  trtr.png   41.49KB   15 downloads





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq