Mehrere Nachkommen in Verwandtschaftsbeziehungen in Python
In der vorherigen Lektion konnte ein Vater nur
einen Sohn haben. Dies wurde dadurch erreicht,
dass der Vater eine Verknüpfung son_id hatte.
Nehmen wir nun an, dass ein Vater mehrere
Söhne haben kann. In diesem Fall können wir
nach wie vor nur eine Tabelle verwenden, die
sich selbst verknüpft. Nur im Verknüpfungsfeld
speichern wir nicht die id des Sohnes, sondern die id
des Vaters. Auf diese Weise können mehrere Benutzer
auf ihren Vater verweisen - und dadurch
wird der Vater mehrere Söhne haben:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Den Benutzer zusammen mit seinem Vater kann man wie folgt abrufen:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Nehmen wir an, wir haben Benutzer. Jeder Benutzer hat einen Vater und eine Mutter. Beschreiben Sie die Speicherstruktur.
Schreiben Sie eine Abfrage, die den Benutzer zusammen mit seinem Vater und seiner Mutter abruft.