Relations familiales avec plusieurs descendants en PHP
Dans la leçon précédente, un père ne pouvait avoir qu'un
seul fils. Ceci était réalisé grâce au fait
que le père avait une liaison son_id.
Supposons maintenant qu'un père puisse avoir plusieurs fils.
Dans ce cas, nous pouvons toujours créer
une seule table, qui sera liée
à elle-même. Seulement dans le champ de liaison, nous stockerons
non pas l'id du fils, mais l'id du père. Dans ce
cas, plusieurs utilisateurs pourront référencer
leur père - et ainsi le père aura
plusieurs fils :
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Obtenir un utilisateur avec son père peut se faire de la manière suivante :
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Supposons que nous ayons des utilisateurs. Chaque utilisateur a un père et une mère. Décrivez la structure de stockage.
Écrivez une requête qui récupérera un utilisateur avec son père et sa mère.