none
Criar relacionamento um para muitos em tabelas no SQL Server Management Studio 2005

    Pergunta

  • Olá,

    Como faço para criar um relacionamento um para muitos no SQL Server Management Studio 2005.
    Eu tenho duas tabelas, uma é pessoa e outra é ocorrência, neste caso uma pessoa pode ter várias ocorrências, mas, cada ocorrência só pode ter uma pessoa.

    Primeiro:
         Eu fui no diagrama de relacionamentos e criei uma chave estrangeira de ID_pessoa (da tabela pessoa), na tabela ocorrência associando ela com ID_ocorrencia, mas, não apareceu dentro da tabela ocorrência um campo pra puxar os dados do ID_pessoa então:
        Eu criei um campo na tabela ocorrência de nome Fk_pessoa para associar o campo ID_pessoa (que é a chave primária da tabela pessoa) através da ferramenta Index/Key, só que pelo que entendi é necessário criar uma constraint para associar os dois campos, alguém sabe como faço isso, eu já achei a ferramenta constraint é só adicionar o código correto, mas, não sei qual código é esse.
       
    quinta-feira, 26 de fevereiro de 2009 10:36

Respostas

  • Boa Noite,

    Se há duas tabelas, o relacionamento não poderá ser de "muitos para muitos". Embora conceitualmente (e até logicamente) isso esteja correto, fisicamente só existe o relacionamento um para muitos. O um para um é uma especialização do um para muitos e o muitos para muitos necessitará de uma terceira tabela para implementar dois "um para muitos".

    Baseando-se na sua descrição, o relacionamento não é de muitos para muitos e sim de um para muitos, ou seja um pessoa pode ter muitas ocorrências, mas uma ocorrência não pode por exemplo ter muitas pessoas.

    Há alguma restrição em fazer isso via código ou você realmente deseja fazer via interface gráfica ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com/


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 27 de fevereiro de 2009 03:28
  • Obrigada pelas respostas, eu consegui realizar através da interface grafica. O meu erro é que eu estava relacionando as duas chaves primárias das tabelas, portanto eu tinha um relacionamento um para um, mas, agora eu corrigi e associei com a chave certa. Obrigada pelas respostas.

     

    Beatriz

    sexta-feira, 27 de fevereiro de 2009 10:09

Todas as Respostas

  • não sei entendi, mas no caso da tabela ocorrência você pode gerar um ID autoincremento ou um a um e associar a pessoa a este ID.


    tbPessoas   tbOcorrencias
    IdPessoa     IdOcorrencia
                        IdPessoa



    IdPessoa            IdOcorrencia
    100                    1
    100                    2


    pelo que entendi é só colocar o tipo de dados IdOcorrencia como Autoincrement não aceitando repitição e assim associar a pessoa a este IdOcorrencia.

    select idpessoa, idocorrencia from tbOcorrencias

    se eu quiser o nome da pessoa, consulto tbpessoas e uso o inner join com tbocorrencias.
    Carlos Lima
    quinta-feira, 26 de fevereiro de 2009 19:31
  • Boa Noite,

    Se há duas tabelas, o relacionamento não poderá ser de "muitos para muitos". Embora conceitualmente (e até logicamente) isso esteja correto, fisicamente só existe o relacionamento um para muitos. O um para um é uma especialização do um para muitos e o muitos para muitos necessitará de uma terceira tabela para implementar dois "um para muitos".

    Baseando-se na sua descrição, o relacionamento não é de muitos para muitos e sim de um para muitos, ou seja um pessoa pode ter muitas ocorrências, mas uma ocorrência não pode por exemplo ter muitas pessoas.

    Há alguma restrição em fazer isso via código ou você realmente deseja fazer via interface gráfica ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com/


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 27 de fevereiro de 2009 03:28
  • Obrigada pelas respostas, eu consegui realizar através da interface grafica. O meu erro é que eu estava relacionando as duas chaves primárias das tabelas, portanto eu tinha um relacionamento um para um, mas, agora eu corrigi e associei com a chave certa. Obrigada pelas respostas.

     

    Beatriz

    sexta-feira, 27 de fevereiro de 2009 10:09