Was this page helpful?

Cardinalidades

    Existem três tipos de cardinalidades diferentes as quais uma relação pode ser submetida, são elas; um-para-um, um-para muitos e muitos-para-muitos. Analisemos cada um singularmente:

    Relacionamento um-para-um

    Neste tipo de relacionamento a escolha da chave estrangeira fica a critério do programador em escolher em qual tabela ficará. Mas para isso ser feito pelo rails precisamos usar os métodos, belongs_to e has_one:

    has_one: Esse método tem de estar na tabela que NÃO possuirá a chave estrangeira.

    belongs_to: Esse método tem de estar na tabela que possuirá as chaves estrangeiras, lembrando que a chave estrangeira tem de ter o nome da outra tabela seguido do sufixo  _id .

    Relacionamento um-para-muitos

    Neste tipo de relacionamento a chave estrangeira tem por obrigação de estar na tabela cuja cardinalidade é o "muitos", análogamente ao exemplo anterior podemos concluir que em rails será:

    has_many: Método utilizado na tabela que possuir cardinalidade 1.

    belongs_to: Método utilizado na tabela que possuir a chave estrangeira, sendo obrigado a tabela possuir cardinalidade "N".

    Relacionamento muitos-para-muitos

    Há duas maneiras de fazer um relacionamento muitos-para-muitos, a primeira maneira é a tradicional "has_many  " e "belongs_to", porém esses dois métodos não acho, particularmente, recomendado, pois a escolha da chave estrangeira tem de estar na tabela que possuir belongs_to , o que fere um pouco os conceitos básicos de relacionamento "N" para "N".

    Então a melhor maneira de fazer isso é usar o método has_many_and_belongs_to.

    has_many_and_belongs_to: esse método tem de estar em ambas as tabelas, no entanto a escolha de sua chave estrangeira deve estar em uma tabela extra, chamada de "Join table" pela API. Essa tabela deve possuir os dois nomes das classes que relacionam-se, tendo também que possuir o método belongs_to para ambas as tabelas.

    Was this page helpful?
    Marcadores (Editar marcadores)
    • No tags
    Páginas com link aqui
    Estatísticas da página
    5124 view(s), 6 edit(s) and 2371 character(s)

    Comentários

    Faça o login para escrever um comentário.

    Anexar arquivo

    Anexos