Aaaaalso, folgende Beispielsituation:
Auf jedem Planeten sind Schiffe (ca. 10 Schiffstypen) stationiert. Dazu könnte man also Folgendes machen:
Tabelle Schiffe
ship_id, ship_name etc....
Tabelle Planeten
planet_id, planet_name, koord_x etc......
Tabelle Schiffe auf Planeten
id, planet_id, ship_id, quantity
Ergibt dann sowas:
1, 54645, 1, 200
2, 54645, 2, 100
3, 54645, 3, 50
4, 89536, 1, 100
usw.
Oder aber man macht das ganze "unnormalisiert":
Tabelle Schiffe und Planeten bleibt unverändert
Tabelle Schiffe auf Planeten:
id, planet_id, quantity_ship1, quantity_ship2, quantity_ship3 usw.....
1, 54645, 200, 100, 50
2, 89536, 100
Letzte Version hat IMHO folgenden Vorteil:
Wenn ich alle Schiffe eines Planeten updaten will kann ich das in einer Query tun. Hätte ich eine normalisierte Tabelle bräuchte ich dazu ja über 15 einzelne Querys:
UPDATE `ships_on_planet` SET
`quantity_ship1`=quantity_ship1-$quantity_ship1, `quantity_ship2`=quantity_ship2-$quantity_ship2, `quantity_ship3`=quantity_ship3-$quantity_ship3, `quantity_ship4`=quantity_ship4-$quantity_ship4,
usw.
WHERE `id`=$id
Im Gegensatz zu:
UPDATE `ships_on_planet` SET `quantity`=quantity-$quantity_ship1 WHERE `id`=$id
UPDATE `ships_on_planet` SET `quantity`=quantity-$quantity_ship2 WHERE `id`=$id
UPDATE `ships_on_planet` SET `quantity`=quantity-$quantity_ship3 WHERE `id`=$id
UPDATE `ships_on_planet` SET `quantity`=quantity-$quantity_ship4 WHERE `id`=$id
usw.
Ich sehe denn Sinn von Datenbanknormaliserung schon, beispielsweise ist die nicht normalisierte Version unflexibler, daher man kann nicht "einfach so" einen neuen Schiffstyp anhängen. Doch was Querys angeht denke ich das unnormalisiert einfach schneller ist. Bitte klärt mich auf.