Relazioni parentali con più discendenti in PHP
Nella lezione precedente, un padre poteva avere solo
un figlio. Ciò era ottenuto grazie al fatto che
il padre aveva un collegamento son_id.
Supponiamo ora che un padre possa avere più figli.
In questo caso, possiamo ancora creare
solo una tabella, che sarà collegata
a se stessa. Solo che nel campo di collegamento memorizzeremo
non l'id del figlio, ma l'id del padre. In questo
modo, più utenti potranno fare riferimento
al proprio padre - e così il padre avrà
più figli:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
È possibile ottenere un utente insieme a suo padre nel seguente modo:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Supponiamo di avere degli utenti. Ogni utente ha un padre e una madre. Descrivete la struttura di memorizzazione.
Scrivete una query che recuperi un utente insieme a suo padre e sua madre.