Relazioni Parentali con Figli Multipli in Python
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 diversi
figli. In questo caso, possiamo ancora
creare una sola 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, diversi utenti potranno
fare riferimento al proprio padre - e così
il padre avrà diversi 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 modo seguente:
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.