Ziel: Überführe das Logbuch eines Plünderer-Trupps in die 3. Normalform.
LogID | Datum | Zone | ZonenTyp | AnführerID | AnführerName | AnführerFraktion | GefundeneItems (Item, Menge) |
---|---|---|---|---|---|---|---|
R01 | 26.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker | (Wasserfilter, 3), (Konserven, 10) |
R02 | 27.07.2025 | Bibliothek | Öffentlich | L2 | Elara | Die Schriftgelehrten | (Buch, 5), (Medizin, 2) |
R03 | 28.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker | (Ersatzteile, 15), (Treibstoff, 5) |
Regel: Alle Attribute müssen atomar sein. Die Spalte "GefundeneItems" mit mehreren Werten wird aufgelöst. Jeder Fund bekommt eine eigene Zeile. Der Primärschlüssel besteht neu aus LogID und ItemName.
LogID | ItemName | Menge | Datum | Zone | ZonenTyp | AnführerID | AnführerName | AnführerFraktion |
---|---|---|---|---|---|---|---|---|
R01 | Wasserfilter | 3 | 26.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker |
R01 | Konserven | 10 | 26.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker |
R02 | Buch | 5 | 27.07.2025 | Bibliothek | Öffentlich | L2 | Elara | Die Schriftgelehrten |
R02 | Medizin | 2 | 27.07.2025 | Bibliothek | Öffentlich | L2 | Elara | Die Schriftgelehrten |
R03 | Ersatzteile | 15 | 28.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker |
R03 | Treibstoff | 5 | 28.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker |
Regel: Kein Nicht-Schlüsselattribut darf nur von einem Teil des zusammengesetzten Primärschlüssels abhängen.
Die Daten werden in die Tabellen Plünderungen und Funde aufgeteilt.
LogID | Datum | Zone | ZonenTyp | AnführerID | AnführerName | AnführerFraktion |
---|---|---|---|---|---|---|
R01 | 26.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker |
R02 | 27.07.2025 | Bibliothek | Öffentlich | L2 | Elara | Die Schriftgelehrten |
R03 | 28.07.2025 | Alte Fabrik | Industrie | L1 | Jax | Die Mechaniker |
LogID | ItemName | Menge |
---|---|---|
R01 | Wasserfilter | 3 |
R01 | Konserven | 10 |
R02 | Buch | 5 |
R02 | Medizin | 2 |
R03 | Ersatzteile | 15 |
R03 | Treibstoff | 5 |
Regel: Es dürfen keine transitiven Abhängigkeiten bestehen (ein Nicht-Schlüsselattribut darf nicht von einem anderen Nicht-Schlüsselattribut abhängen).
In der Tabelle Plünderungen gibt es zwei transitive Abhängigkeiten:
LogID → AnführerID → AnführerName, AnführerFraktion
LogID → Zone → ZonenTyp
Wir lagern diese Informationen in die neuen Tabellen Anführer und Zonen aus.
AnführerID | AnführerName | AnführerFraktion |
---|---|---|
L1 | Jax | Die Mechaniker |
L2 | Elara | Die Schriftgelehrten |
Zone | ZonenTyp |
---|---|
Alte Fabrik | Industrie |
Bibliothek | Öffentlich |
LogID | Datum | Zone | AnführerID |
---|---|---|---|
R01 | 26.07.2025 | Alte Fabrik | L1 |
R02 | 27.07.2025 | Bibliothek | L2 |
R03 | 28.07.2025 | Alte Fabrik | L1 |
LogID | ItemName | Menge |
---|---|---|
R01 | Wasserfilter | 3 |
R01 | Konserven | 10 |
R02 | Buch | 5 |
R02 | Medizin | 2 |
R03 | Ersatzteile | 15 |
R03 | Treibstoff | 5 |
☣️ Gratulation! Das Logbuch ist jetzt optimal strukturiert und bereit für die nächste Plünderung.