Múltiplos descendentes em relações de parentesco em PHP
Na lição anterior, um pai podia ter apenas
um filho. Isso era alcançado pelo fato de
que o pai tinha uma ligação son_id.
Suponha agora que um pai possa ter vários filhos.
Neste caso, ainda podemos criar
apenas uma tabela, que estará ligada
a si mesma. Só que no campo de ligação armazenaremos
não o id do filho, mas o id do pai. Desta
forma, vários usuários poderão referenciar
seu pai - e assim o pai terá
vários filhos:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Obter um usuário junto com seu pai pode ser feito da seguinte forma:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Suponha que temos usuários. Cada usuário tem um pai e uma mãe. Descreva a estrutura de armazenamento.
Escreva uma consulta que irá buscar o usuário junto com seu pai e sua mãe.