Pythonにおける複数の子を持つ親子関係

前のレッスンでは、父親は 一人の息子しか持つことができませんでした。これは、 父親が son_id という関連を持っていたことによって 実現されていました。

ここで、父親が複数の 息子を持つことができるとします。この場合でも、 依然として一つのテーブルだけで実現でき、 それは自己結合を行います。ただし、関連フィールドに 息子の id ではなく、父親の id を保存します。これにより、複数のユーザーが 自分の父親を参照できるようになり、 結果として父親は複数の息子を持つことになります:

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

ユーザーとその父親を同時に取得するには、 以下のようにします:

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

ユーザーがいるとします。各ユーザーは 父親と母親を持ちます。データ構造を設計してください。

Задание 2

ユーザーとその父親、母親を同時に取得する クエリを記述してください。