Ir para conteúdo
Fórum Script Brasil
  • 0

PMA Database ... não está OK


baladaclick

Pergunta

Galera como resolvo esse problema q ta dando no mysql. quero fazer relacionamento das minhas tabelas e não consigo por conta disso. eu sei que as tabelas tem q estar no engine innodb, todas estão, mas não consigo mesmo assim.

aqui está a estrutura do meu banco

tb_clientes 0 InnoDB latin1_bin 16.0 KB -

tb_consultores 0 InnoDB latin1_bin 16.0 KB -

tb_forma_pagamento 0 InnoDB latin1_bin 16.0 KB -

tb_indices 0 InnoDB latin1_bin 16.0 KB -

tb_modalidades 0 InnoDB latin1_bin 16.0 KB -

tb_plataformas 0 InnoDB latin1_bin 16.0 KB -

tb_produto 0 InnoDB latin1_bin 16.0 KB -

tb_situacao 0 InnoDB latin1_bin 16.0 KB -

tb_usuarios 0 InnoDB latin1_bin 16.0 KB -

tb_vendas 0 InnoDB latin1_bin 16.0 KB -

10 tabela(s) Soma 0 MyISAM latin1_bin 160.0 KB 0 Bytes

alguém pode me ajudar?

abraço!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Você que fazer relacionamentos ou aplicar constraints que assegurem a interdependencia entre as tabelas.

Se for o primeiro caso, então qualquer engine é possível pois é um assunto de SELECTs e JOINs

Se for o segundo assunto, você deve assegurar que as tabelas estejam íntegras, ou seja sem lixo nos atributos que estarão no lado muitos do relacionamento. Deve, também assegurar que todas tem chaves primárias e que os atributos que serão as chaves candidatas (foreign keys) tenham o mesmo tipo e tamanho das que serão as chaves primarias.

Exemplo

Se sei que há um relacionamento um para muitos entre tb_produto e tb_vendas (usando seu exemplo), ou seja um produto pode estar em muitas vendas. Então, na tabela tb_vendas o atributo que fará a ligação com a tabela tb_produto deve ter o mesmo tipo e tamanho do atributo que representa a chave promária da tabela tb_produto.

Devo me certificar, também que todos os valores deste atributo na tabela tb_vendas estejam no atributo correspondente da tabela tb_produto.

O próximo passo é estabelecer a ligação. para isto use (supondo que o atributo comum entre estas tabelas tenha o nome id_produto):

ALTER TABLE tb_vendas
ADD CONSTRAINT FK_tb_vendas_001 FOREIGN KEY (id_produto) REFERENCES tb_produto(id_produto);

Onde:

FK_tb_vendas_001 = é o nome do indice que será a chave estrangeira e que estabelece o relacionamento com a tabela produto

FOREIGN KEY (id_produto) = é o atributo da tabela tb_vendas que estabelece o relacionamento com a tabela produto

tb_produto(id_produto) = é a chave primária na tabela de produto

Link para o comentário
Compartilhar em outros sites

  • 0
certo denis, excelente explicação. vou tentar aqui e já volto p dizer se deu certo. outra coisa. poderia me apresentar algum link ou material sobre esses comando q você postou ai? FK / Foreign Key. tal. estou começando agora mexer com mysql.

Obrigado denis

Manual do MySQL de sua versão, ou, se você não souber inglês, manual do mysql versão 4.1 traduzido para o português.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...