Matzberger Marcus: MySQL - Wie Rechte für Zeilen (rows) vergeben?

Beitrag lesen

Hallo,

Dafür gibt es Code Reviews ;-)

Keine Ahnung, ob Du das ernst meinst. (Falls ja: Designfehler sollte man nicht reviewen sondern vorbeugend per policies bearbeiten.)

Du hast recht, bei uns gibt es strenge Entwicklungsrichtlinien, nichts desto trotz ist ein Code Review notwendig, damit man weiß ob der Entwickler die Standards auch einhält.

Einspruch: Wir kennen zumindest zwei bessere Verfahren für die Historisierung, entweder spezielle History-DBs, die nicht mehr aktuelle Datensätze enthalten oder "n:m"s mit Versionierungen der Datensätze.

Ob dieser Ansatz besser ist hängt von den Anforderungen ab. Eine View, die so gestaltet ist, dass ein Parameter ermöglicht Daten anzuzeigen, die zu einem bestimmten Zeitpunkt gültig waren (sie können historisiert sein oder immer noch aktuell), erleichtert ad hoc Abfragen ungemein. Habe ich die Information in zwei Tabellen wird die Abfrage entsprechend komplexer.

OK, Historisierung per Trigger haben wir auch mal umgesetzt. Würden wir nicht mehr so machen sondern stattdessen in den betreffenden DML-SPs Historisierungs-Code unterbringen. (Dann muss man bspw. auch nicht die ganzen Trigger ab- und zuschalten, wenn mal administrativer oder OLAP-Datenzugriff erfolgt. Schon mal das "vergessene Trigger-Problem" bearbeitet? (Oder das "vergessene FK-Problem"? ;))

"Unsere" Historisierungstrigger lassen sich global per Funktion auf Sessionebene abschalten. Da ist es nicht so leicht etwas zu vergessen.

Aber interessant, habe die VIEWs-Geschichte mit vielen Leuten diskutiert, fast alle versuchten aus mehr oder weniger bewussten Gründen VIEWs zu meiden.

Es gibt immer wieder Fremdsysteme, die auf unsere Daten zugreifen. Wir stellen diese soweit möglich als View zur Verfügung, da Änderungen an unseren Tabellen damit nicht durchschlagen und außerdem Views keine Probleme bei verschiedenen Zugriffstechniken machen.

Manche Anforderungen lassen sich performant auch kaum anders als über Views umsetzen. Gerade in diesem Punkt sind Views jeder Prozedur weit überlegen.

Grüße
Marcus

--
si vis pacem, para iustitiam