none
Relacionamento de tabelas RRS feed

  • Pergunta

  • se eu fizer um campo com o nome campo_chaveestrangeira e usa-lo como tal sem indicar na hora da tabela que e um fk ou seja qual a vantagem de indicar que e uma fk na hora da criação sei que parece obvio mas quero saber os detalhes grato desde ja 

    sábado, 20 de agosto de 2016 01:15

Respostas

  • Olha não entendi muito bem o que você quer mas em se tratando de chave estrangeira caso sua modelagem faça uso da mesma ou seja se seus conjuntos de tabelas estão usando o relacionamento você deve utilizar sempre pois alem de se ter uma base bem alinhada temos também uma maior segurança nos dados pois com uma base de dados bem construida ou seja com seus campos bem dimencionados (tipos de dados corretos) chave primaria / chave estrangeira você garante a integridade das suas informações. Pois encontramos tabelas com (filhos sem pai) quando não temos um bm relacionamento entre as mesmas.

    Ex:

    VENDAS
    CODVEN (INT) (PK)
    DATAVEN (DATE)
    CODFUNC (INT)

    PRODUTOS
    CODPROD (INT) (PK)
    DESCPROD (NVARCHAR2(50)

    ITENSVENDA
    CODVEN (INT) (FK)
    CODPROD (INT) (FK)
    QTDADE (NUMBER(6,2)

    Observe que a tabela VENDAS e PRODUTOS estão relacionadas com a tabela ITENSVENDA pelos campos CODVEN e CODPROD (FK) gerando minha chave composta deixando relacionamento dessa forma e é logico não permitindo exclusão em cascata (exclusão em cascata dependera muito do formato da sua aplicação / Banco de Dados ou seja a que se destina sua base de dados) dessa forma caso se for excluir um registro da tabela PRODUTOS e o mesmo esteja sendo utilizado na tabela ITENSVENDA este não sera excluido devido ao relacionamento e como um registro da tabela VENDAS for excluido o mesmo se existir na tabela ITENSVENDA também não será excluido
    Lembrando que sua aplicação deverá tratar as exclusões / inserções com controle de transação para que não tenhamos registros na tabela VENDAS sem nenhum registro na tabela ITENSVENDA.

    Tudo isso influenciará nas suas querys SQL com o uso o INNER LEFT RIGHT Joins .... você tera uma base integra pois essas relações garantem sua integridade e uma boa normalização de dados uma boa montagem das tabelas e suas relações irão deixar sua aplicação muito mais segura.

    Não sei se respondi o que você havia perguntado mas qualquer coisa posta ai de volta.


    Junior

    sábado, 20 de agosto de 2016 11:08

Todas as Respostas

  • Olha não entendi muito bem o que você quer mas em se tratando de chave estrangeira caso sua modelagem faça uso da mesma ou seja se seus conjuntos de tabelas estão usando o relacionamento você deve utilizar sempre pois alem de se ter uma base bem alinhada temos também uma maior segurança nos dados pois com uma base de dados bem construida ou seja com seus campos bem dimencionados (tipos de dados corretos) chave primaria / chave estrangeira você garante a integridade das suas informações. Pois encontramos tabelas com (filhos sem pai) quando não temos um bm relacionamento entre as mesmas.

    Ex:

    VENDAS
    CODVEN (INT) (PK)
    DATAVEN (DATE)
    CODFUNC (INT)

    PRODUTOS
    CODPROD (INT) (PK)
    DESCPROD (NVARCHAR2(50)

    ITENSVENDA
    CODVEN (INT) (FK)
    CODPROD (INT) (FK)
    QTDADE (NUMBER(6,2)

    Observe que a tabela VENDAS e PRODUTOS estão relacionadas com a tabela ITENSVENDA pelos campos CODVEN e CODPROD (FK) gerando minha chave composta deixando relacionamento dessa forma e é logico não permitindo exclusão em cascata (exclusão em cascata dependera muito do formato da sua aplicação / Banco de Dados ou seja a que se destina sua base de dados) dessa forma caso se for excluir um registro da tabela PRODUTOS e o mesmo esteja sendo utilizado na tabela ITENSVENDA este não sera excluido devido ao relacionamento e como um registro da tabela VENDAS for excluido o mesmo se existir na tabela ITENSVENDA também não será excluido
    Lembrando que sua aplicação deverá tratar as exclusões / inserções com controle de transação para que não tenhamos registros na tabela VENDAS sem nenhum registro na tabela ITENSVENDA.

    Tudo isso influenciará nas suas querys SQL com o uso o INNER LEFT RIGHT Joins .... você tera uma base integra pois essas relações garantem sua integridade e uma boa normalização de dados uma boa montagem das tabelas e suas relações irão deixar sua aplicação muito mais segura.

    Não sei se respondi o que você havia perguntado mas qualquer coisa posta ai de volta.


    Junior

    sábado, 20 de agosto de 2016 11:08
  • obrigado pela atenção Junior ontem estava dando erro de inclusão, estudei a madrugada inteira e aprendi o primeiro erro foi que estava Isam nao Innodb entendi as diferenças que o isam não trabalha bem com as chaves, depois queria incluir um dado do qual não existia da tabela estrangeira, cheguei ao ponto de querer deletar tabela sendo usada em outra, entendi os joins agora ta rodando legal toda essa ignorância minha virou aprendizado, só foi funcionar depois que deu o click na cabeça, pensei que os erros era porque estava usando o workbench na verdade nao estava sabendo utilizar agora ta tudo bem kkkkkkk vlw

    sábado, 20 de agosto de 2016 14:49