Hallo Tom,
danke für deine Hinweise und Tipps.
(PS: es handelt sich überigens um kein echtes Bestellsystem von Waren, aber im Prinzip ist der Ablauf ähnlich)
Noch eine weitere Frage zur Normalisierung:
Momentan sieht die Haupttabelle "tabBestellArtikel" unter anderem so aus.
bestellid, datum, seiten, adresse1,adresse2,adresse3,adresse4,adresse5
-----------------------------------------------------------------------------------
1, 2013-12-24,3, Werner,wk@email,22333,meinOrt,0511-223
Nach der Normalform1 soll man ja solche SPalten wie adresse1,adresse2... vermeiden.
Daher habe ich eine neue Tabelle "bestelluser" angelegt.
bestellid,uservalue,userindex
1, Werner, 1
1, wk@email, 2
1, 22333, 3
1, meinOrt, 4
Jetzt hat man halt die Situation das sich diese Tabelle verfünfacht. Hat die Haupttabelle 100 Zeilen, hat diese nun 500.
Eine andere Möglichkeit der Tabelle "bestelluser" wäre eventuell
bestellid,adresse1,adresse2,adresse3,adresse4,adresse5
----------------------------------------------------------
So hätte man weniger Zeilen aber auch leere Spalten wenn bestimmte Adressfelder leer sind.
Die Frage ist was braucht weniger Speicher? (die Spalte "uservalue" als varchar(200) )
Es gibt ja eine eigene Tabelle "userdata". Am optimalsten wäre natürlich man würde gleich die "userid" aus dieser Tabelle in die Tabelle "bestelluser" schreiben. Das geht aber nicht, weil im Programmablauf in bestimmten Situationen vor dem Speichern der Anwender seine Adressfelder ändern kann. Diese geänderten Daten werden dann gespeichert. Diese Änderung ist aber nur einmalig für diese "Bestellung" und nicht dauerhaft in der Tabelle "userdata".
Welches Design bietet sich an?
Gruss
Werner