1
resposta

Relacionamento recursivo

Se eu quiser fazer um sistema de árvore genealógica de famílias, cada objeto Pessoa vai ter um atributo mãe que vai levar o id de outro objeto Pessoa, por exemplo. No caso de situações em que diferentes objetos da mesma classe irão se relacionar, como ficaria o código no arquivo App\Pessoa.php ??? Quero entender se uso hasMany, belongsTo, etc...

1 resposta

Olá Victor minha sugestão pra esse caso é que tu use uma tabela pivô, e nela você relacione a tabela pessoa com a mesma tabela pessoa com um parâmetro adicional que seria o nível de relacionamento, por exemplo:

tabela pessoa: nome, email, sexo, id tabela pivo pessoa: id_pessoa_um, id_pessoa_dois, tipo_relacao [pai, mae, filho, avo, avó, etc...]

ou você pode usar sem tipo de relação e criar um encadeamento

pessoa 1 -> pivo {(pessoa 1, pessoa 2), (pessoa 3, pessoa 1)} é pai / mae da pessoa 2 e 3 pessoa 2 -> pivo {(pessoa 2, pessoa 1)} é filho da pessoa 1 pessoa 3 -> pivo {(pessoa 3, pessoa 1), (pessoa 3, pessoa 4)} é filho da pessoa 1 e mae da pessoa 2 pessoa 4 -> pivo {(pessoa 3, pessoa 1)} é filho da pessoa 2