Tom: Datensatzanzahl zwischenspeichern? Performance...

Beitrag lesen

Hello,

Ist es da besser, in Tabelle A ein Feld zu machen und darin die Anzahl der B's und C's unter A zu speichern?
Natürlich müsste ich die Anzahl bei jedem Erstell- und Löschvorgang entsprechend hoch- oder runterzählen.

Das erstellen von A's, B's oder C's, kommt eigentlich wesentlich weniger vor als das Anzeigen.

Wenn die Anzahl keine Auswirkung auf die Integrität der Daten hat, dann kann es tatsächlich sinnvoll sein, sie zusätzlich mitzuführen im sogenannten "Kopfdatensatz". MySQL macht intern z.B. mit der Autoincrement-ID nicht anderes.

Das köntne dann am besten durch Verwendung von Stored Procedures und Triggers erledigen, die die Datenhaltungsschicht gegen die Datenveränderungsschicht abgrenzen.

Das bedeutet also, dass Du keinem Prozess mehr direkten Zugang auf eine Tabelle gewährst, sondern diesen Zugang nur per Stored Routine zur Verfügung stellst. Was die dann als Verwaltungsaufgabe zusätzlich erledigen muss, wäre z.B. das Hochzählen des Zählers in der Kopftabelle.

Für das Löschen und Ändern benötigst Du dann allerdings entsprechende Routinen.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de