Mehrere Nachkommen in Verwandtschaftsbeziehungen in PHP
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 erstellen, die mit sich selbst verknüpft ist.
Allerdings speichern wir im Verknüpfungsfeld
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 |
Einen Benutzer zusammen mit seinem Vater kann man auf folgende Weise erhalten:
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 einen Benutzer zusammen mit seinem Vater und seiner Mutter abruft.