Relations parentales avec plusieurs descendants en Python

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 ne créer qu'une seule table, qui sera liée à elle-même. Seulement, dans le champ de liaison, nous stockerons non pas le id du fils, mais le id du père. Ainsi, plusieurs utilisateurs pourront se référer à leur père - et de cette manière, le père aura plusieurs fils :

users
id name father_id
1 user1 3
2 user2 3
3 user3 4
4 user4 null

Obtenir un utilisateur ainsi que son père est possible de la manière suivante :

sqlSELECT
  users.name as user_name,
  fathers.name as father_name
FROM
  users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Задание 1

Supposons que nous ayons des utilisateurs. Chaque utilisateur a un père et une mère. Décrivez la structure de stockage.

Задание 2

Écrivez une requête qui récupérera un utilisateur ainsi que son père et sa mère.