
Datenmodelle
Teil von Datenmodelle für interne Apps
Doppelte Datenhaltung vermeiden
Verbindliche Werte, Anzeigen und historische Momentaufnahmen unterscheiden – und widersprüchliche Datenkopien in einer internen App abbauen.
Für jeden aktuellen Wert legen Sie eine verbindliche Pflegestelle fest. Andere Tabellen und Ansichten können ihn von dort lesen.
Muss ein früherer Stand erhalten bleiben, speichern Sie ihn mit klarem Zweck und Zeitpunkt. So werden aktuelle Angabe und historische Momentaufnahme nicht verwechselt.
Wiederholung und Duplikat unterscheiden
In einer internen Service-App kann dieselbe Kundennummer in mehreren Vorgängen stehen. Als Verweis ordnet sie jeden Vorgang einem Kunden zu.
Problematisch ist eine zweite frei bearbeitbare Kopie der aktuellen Telefonnummer in jedem Vorgang: Eine Änderung im Kundenstamm erreicht diese Kopien nicht automatisch; eine Änderung im Vorgang korrigiert den Stamm nicht.
Stellen Sie bei einer mehrfach vorkommenden Angabe drei Fragen:
- Beschreibt sie den Kundenstamm oder genau diesen Vorgang?
- Soll eine spätere Änderung sichtbar werden, oder muss der frühere Stand erhalten bleiben?
- Wo und von wem wird der aktuelle Wert verbindlich geändert?
Für einen heutigen Rückruf kann die App die Telefonnummer aus dem Kundenstamm anzeigen. Die Nummer, an die eine abgeschlossene Nachricht tatsächlich gesendet wurde, kann dagegen als Beleg zum Vorgang gehören.
Unterschiedliche Feldnamen und Regeln machen diesen Unterschied erkennbar.
Wiederholung vs. Duplikat: Unterscheidung für die Datenhaltung
- Wiederholung (Verweis)Kundennummer wird in mehreren Vorgängen referenziert – bleibt aktuell, wenn im Kundenstamm geändert.
- Duplikat (freie Kopie)Aktuelle Telefonnummer ist doppelt gespeichert – Änderungen im Stamm werden nicht übernommen, Änderungen im Vorgang korrigieren den Stamm nicht.
Widersprüchliche Kopien im Bestand finden
Wählen Sie einen Wert, der sich ändern kann, etwa Ansprechpartner, Abteilung oder Artikelbezeichnung. Suchen Sie Tabellen, Formulare, Listen und Importe, in denen er gespeichert oder geändert werden kann.
Notieren Sie je Stelle Zweck und Schreibweg. Gleiche Spaltenüberschriften beweisen noch keine gleiche Bedeutung; klären Sie diese mit den fachlich Zuständigen.
Befund / Entscheidung
- Zwei editierbare Felder meinen denselben aktuellen Wert.
- Eine Pflegestelle wählen und die andere Anzeige daraus ableiten.
- Ein Vorgang braucht den Stand zum Zeitpunkt einer Entscheidung.
- Momentaufnahme mit Anlass und Zeitpunkt kennzeichnen.
- Ein Wert wird aus anderen Feldern berechnet.
- Maßgebliche Eingaben und Berechnungsregel festlegen.
- Zwei Quellen beanspruchen denselben aktuellen Wert.
- Fachliche Zuständigkeit klären, bevor eine Übertragung eingerichtet wird.
Eine zusätzliche Lesekopie oder ein gespeicherter berechneter Wert kann technisch begründet sein. Dann braucht die Kopie eine Aktualisierungsregel und einen Umgang mit Abweichungen.
In PostgreSQL kann eine generierte Spalte nur auf die aktuelle Zeile zugreifen; sie eignet sich daher nicht direkt zur Übernahme einer Telefonnummer aus einer anderen Tabelle.
Eine normale PostgreSQL-View speichert ihr Abfrageergebnis nicht dauerhaft, sondern führt die Abfrage beim Zugriff aus. Andere App-Plattformen können diese Möglichkeiten anders bereitstellen.
Best Practices zur Vermeidung doppelter Datenhaltung
- Anzahl verbindlicher Pflegestellen1 pro aktueller Angabe
- Berechnete Spalten in PostgreSQLErlaubt nur Zugriff auf aktuelle Zeile – keine direkte Übernahme aus anderer Tabelle
- View-Speicherung in PostgreSQLKeine dauerhafte Speicherung – Abfrage wird beim Zugriff ausgeführt
Kopien kontrolliert zurückbauen
Vergleichen Sie zunächst widersprüchliche Werte und bestimmen Sie, welche Quelle für den jeweiligen Zweck und Zeitraum gilt. Ordnen Sie die betroffenen Datensätze über stabile Kennungen zu.
Danach können Sie Schreibwege auf die verbindliche Stelle begrenzen und Anzeigen umstellen.
Prüfen Sie vor dem Entfernen einer alten Spalte, ob Berichte oder Abläufe ihren früheren Inhalt brauchen. Falls ja, geben Sie der Momentaufnahme einen eindeutigen Namen und legen Sie fest, wann sie geschrieben wird.
Falls nein, prüfen Sie mit Beispieldatensätzen, ob die neue Anzeige den erwarteten aktuellen Wert liefert.
Das Ziel ist ein nachvollziehbares Modell: Für jede aktuelle Angabe steht fest, wo sie geändert wird; bewusst gespeicherte frühere Fassungen bleiben als solche erkennbar.


