S t o n e 0 Denunciar post Postado Julho 16, 2008 Olá amigos, sou iniciante em mysql e como todo bom iniciante tenho dúvidas, estou com uma dúvida na chave estrangeira no mysql, estou fazeno um cadastro de clientes. TABELA CLIENTES -CLI_CODIGO |---END_CODIGO -CLI_NOME | END_RUA -CLI_ENDEREÇO-----| END_BAIRO -CLI_TIPO END_NUM END_CEP preciso que o campo CLI_ENDERECO se ligue com o END_CODIGO para pegar o endereço do cliente. tem como fazer isso em mysql? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Julho 16, 2008 quais são essas duas tabelas que você tem que quer fazer o relacionamento? Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Julho 16, 2008 Tabela CLIENTES e tabela ENDERECO o campo CLI_ENDERECO na tabela CLIENTES tem que chamar o END_CODIGO da tabela ENDERECO Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Julho 16, 2008 na tabela ENDERECO você coloca o campo END_CODIGO como PK e na tabela CLIENTE você coloca o campo CLI_ENDERECO como FK se referenciando a END_CODIGO da tabela ENDERECO Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Julho 16, 2008 sabe como posos fazer isso no PhpMyadmin ou no MyManager? Obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 Você pode abrir a possibilidade de ter mais de um endereço para o cliente, podendo assim tem um campo no cadastro de endereços que diga o tipo de endereço, e ter uma tabela intermediária entre CLIENTE e ENDERECO fazendo a ligacão, exemplo: Tabela CLIENTE: CLI_CODIGO PK CLI_NOME CLI_TIPO Tabela ENDERECO: END_CODIGO PK END_TIPOEND END_RUA END_NUM END_COMPL END_BAIRO END_CEP Tabela CLIENTE_ENDERECO CLI_CODIGO PK END_CODIGO PK TIPO_PRINCIPAL Na tabela ENDERECO pode ainda ter um campo COMPLEMENTO para informar o número do apartamento ou o que seja complementar ao endereço, na modelagem que coloquei, você pode ter N endereços para o cliente, e podendo assim definir qual é o endereço principal, na tabela CLIENTE_ENDERECO precisa do campo CLI_CODIGO e END_CODIGO para conseguir assim pegar todos os endereços para o cliente. Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Julho 16, 2008 Você pode abrir a possibilidade de ter mais de um endereço para o cliente, podendo assim tem um campo no cadastro de endereços que diga o tipo de endereço, e ter uma tabela intermediária entre CLIENTE e ENDERECO fazendo a ligacão, exemplo: Tabela CLIENTE: CLI_CODIGO PK CLI_NOME CLI_TIPO Tabela ENDERECO: END_CODIGO PK END_TIPOEND END_RUA END_NUM END_COMPL END_BAIRO END_CEP Tabela CLIENTE_ENDERECO CLI_CODIGO PK END_CODIGO PK TIPO_PRINCIPAL Na tabela ENDERECO pode ainda ter um campo COMPLEMENTO para informar o número do apartamento ou o que seja complementar ao endereço, na modelagem que coloquei, você pode ter N endereços para o cliente, e podendo assim definir qual é o endereço principal, na tabela CLIENTE_ENDERECO precisa do campo CLI_CODIGO e END_CODIGO para conseguir assim pegar todos os endereços para o cliente. Humm.. vou tentar fazer do seu jeito ;D mas assim quando eu chamar os dados pelo CLI_CODIGO ou END_CODIGO da tabela CLIENTE_ENDERECO ele ja me traz todos os dados automaticamente? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 Sim, terá somente de fazer um SQL cruzando a tabela com a ENDERECO e filtrando pelo cliente desejado. Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Julho 16, 2008 Humm.. é nisso que estou com dúvida.. como cruzar as duas tabelas.. no firebird é só criar uma chave estrangeira seja qual for o programa, mas no mysql não sei como :S Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 MySQL é a mesma coisa. Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Julho 16, 2008 Cara agora fiz igual o manual do mysql: CREATE TABLE ENDERECO( END_CODIGO SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, END_CLIENTE SMALLINT UNSIGNED NOT NULL REFERENCES CLIENTES(CLI_CODIGO), PRIMARY KEY (END_CODIGO) ) Mas quando faço a consulta ele retora o END_CLIENTE sempre como 0, ele não está pegando o usuário que que cadastro por último :S Compartilhar este post Link para o post Compartilhar em outros sites