Ilja: MySQL Performance bei großen Tabellen (viele Felder leer)

Beitrag lesen

yo,

Also wenn jetzt die Vorlage geändert wird, dann sollen auch die Kalendereinträge geändert werden, außer sie wurden vorher schon angepasst.

du sagst es ja selber, du willst nicht alle ändern. nur weil man mehrere datensätze auf die gleiche weise ändern will, dann heisst das noch lange nicht, dass sie abhängig voneinander sind. ausserdem willst du ja die vergangenen kalendertage nicht ändern.

ich kenne deine wiederzugegebene umgebung nicht genau. aber auf den ersten blick würde ich sagen, jeder tag hat seine eigenen werte, auch wenn verschiedene tage dabei durchaus die gleichen werte haben können. aber wie gesagt, was gleich aussieht, muss nicht gleich sein.

-ist irgendwie kompliziert. Man soll einigermaßen einfach änderungen machen können und dabei auch gleich alle Kalendereinträge ändern können wenn man sich in der Vorlage geirrt hat zum Beispiel. Aber es soll auch sicher sein, dass Kalendereinträge, wo schon jemand gebucht hat (ist ein Online Buchungssystem) nicht geändert werden dürfen.

du verlierst dich in diesem gedanken, viele datensätze auf einmal ändern zu wollen. jeder kalendertag kann unabhängig von den anderen kalendertagen eigene werte besitzen. ob diese nun gleich sind oder nicht, das ist erst mal zweitranging. sollte man sich nun bei einer vorlage geirrt haben, dann kann man immer noch mit einem einzigen update befehl nur die daten ändern, die auch wirklich geändert werden sollen.

vielleicht hilft es dir, anders herum an die sache heran zu gehen. nehmen wir an, einige kalendertage haben die gleiche vorlage benutzt und es liegt noch keine änderung oder buchung vor und alle termine liegen in der zukunft. nun willst du aber an einem kalendertag die werte ändern. dann kannst du auch nicht einfach die vorlage ändern, weil sich sonst alle anderen mitändern würden. nun kannst du natürlich sagen, dem eine neue vorlage zuzuordnen, aber das löst das problem nicht, es verschiebt es nur.

Vielleicht mache ich es ja so:
In der "Kalender" Tabelle wird alles aus der Vorlage rausgespeichert + die Vorlage ID.

das wäre schon eher eine option.

Jetzt steht es dann aber doppelt da, was man ja eigentlich vermeiden will..naja.

das ist leider ein weit verbreiter irrtum. normaliserung entfernt keine redundanzen. doppelte werte sind grundsätzlich nicht verkehrtes. es ist eine frage der kontrolle.

Wenn die Vorlage geändert wird gibt es eine Option ob man auch schon erstellte aber noch nicht gebuchte Kalendereinträge die in der Zukunft liegen ändern möchte. Dann wird jedes Kalenderelement mit der entsprechenen Vorlage ID angepasst.

kann man so machen, aber ist mit vorsicht zu genießen.

Ilja