
Datenmodelle
Datenmodelle für interne Apps
Datensatzarten, Felder, Beziehungen und verbindliche Werte für eine interne App festlegen – mit Beispiel und konkreten Prüffragen.
Ein Datenmodell für eine interne App klärt vier Fragen: Welche Dinge werden erfasst, welche Angaben gehören zu ihnen, wie hängen Datensätze zusammen und wo wird jeder aktuelle Wert verbindlich gepflegt? Beginnen Sie mit einem konkreten Arbeitsfall. Eine Liste gewünschter Eingabefelder beantwortet diese Fragen noch nicht.
Vom Arbeitsfall zu Datensätzen
Angenommen, Beschäftigte reichen Materialanforderungen ein. Eine Anforderung hat einen Status und eine zuständige Person. Sie kann mehrere Positionen enthalten; jede Position nennt einen Artikel und eine Menge.
Ein erster Entwurf umfasst daher Anforderung, Position und Artikel. Ob Beschäftigte eigene Datensätze in der App brauchen oder aus einem bestehenden Verzeichnis kommen, hängt von der gewählten Datenquelle ab.
Beschreiben Sie jede Datensatzart in einem Satz: „Ein Datensatz steht für genau …“. Eine Position steht beispielsweise für eine bestimmte Artikelzeile innerhalb einer Anforderung. Diese Definition hilft zu entscheiden, ob ein Feld zur Position, zur Anforderung oder zum Artikel gehört.
| Entscheidung | Frage am Beispiel |
|---|---|
| Datensatzart | Hat die Information eigene Angaben oder kommt sie mehrfach pro Anforderung vor? |
| Feld | Welchen Datensatz beschreibt der Wert? |
| Beziehung | Wie wird eine Position ihrer Anforderung zugeordnet? |
| Verbindlicher Wert | Wo wird die aktuelle Artikelbezeichnung gepflegt? |
| Zuständigkeit | Wer darf einen Wert ändern? |
Felder mit überprüfbaren Regeln versehen
Ordnen Sie einem Feld nicht nur einen Namen, sondern auch einen passenden Datentyp und eine fachliche Regel zu. Ein Datentyp schränkt ein, welche Art von Wert gespeichert werden kann; für viele Anforderungen ist diese Grenze allein zu grob. Bei einer Menge kann etwa zusätzlich festgelegt werden, dass sie einen positiven Wert haben muss.
PostgreSQL kann solche Bedingungen mit Einschränkungen wie CHECK durchsetzen. Eine CHECK-Regel prüft einen Ausdruck und weist einen Schreibvorgang zurück, wenn die Bedingung nicht erfüllt ist. Das gilt laut PostgreSQL-Dokumentation auch dann, wenn der unzulässige Wert aus einer Vorgabe stammt.
Wichtige Datenmodellierungsregeln nach PostgreSQL
- CHECK-Regeln
- Prüfen Bedingungen (z. B. positive Menge)
- NOT NULL
- Erforderlich für verpflichtende Felder
- UNIQUE
- Eindeutigkeit für bestimmte Spalten
- Primärschlüssel
- Garantiert Eindeutigkeit und Identität
- Fremdschlüssel
- Definiert Beziehungen zwischen Tabellen
Beziehungen und Regeln sichtbar machen
Eine Position braucht einen Verweis auf ihre Anforderung. Wenn derselbe Artikel in mehreren Anforderungen vorkommen kann, verweist die Position auch auf den Artikel. So bleiben Angaben zum Vorgang und Angaben zum Artikelstamm getrennt.
Klären Sie, welche Zustände erlaubt sind: Darf eine Anforderung zunächst ohne Position gespeichert werden, und muss jede gespeicherte Position einer Anforderung zugeordnet sein? Ein Verweis allein legt nicht fest, ob die Angabe verpflichtend ist. Halten Sie außerdem fest, was mit Positionen geschieht, wenn eine Anforderung zurückgenommen wird. PostgreSQL führt Primärschlüssel- und Fremdschlüssel-Einschränkungen als eigene Typen auf.
Für Felder und Beziehungen lassen sich unterschiedliche Regeln kombinieren: Ein Wert kann erforderlich und zugleich eindeutig sein; eine Bedingung kann außerdem mehrere Felder gemeinsam prüfen. PostgreSQL unterscheidet unter anderem CHECK-, NOT-NULL-, UNIQUE-, Primärschlüssel- und Fremdschlüssel-Einschränkungen.
Datenverantwortung festlegen
Klären Sie je Datensatzart, wer Begriffe und zulässige Werte fachlich festlegt und wer die Daten im Alltag pflegt. Die Zuständigkeit sollte auch umfassen, wer bei widersprüchlichen oder unvollständigen Angaben entscheidet. So wird aus der Frage „Wer kann das Feld bearbeiten?“ zusätzlich die Frage, wer für einen verlässlichen Wert einsteht.
Legen Sie außerdem fest, wer die Daten nutzen darf und nach welchen Regeln sie verarbeitet werden. Ein Data-Governance-Rahmen kann Verantwortlichkeiten, Prozesse und Qualitätsstandards verbindlich machen. Für den Modellentwurf reicht zunächst eine knappe Zuordnung: Datensatzart, verantwortliche Stelle und geltende Qualitätsregel.
Aktuelle Werte und frühere Stände unterscheiden
Wird die aktuelle Artikelbezeichnung im Artikelstamm gepflegt, kann die App sie in einer Position über den Artikelverweis anzeigen. Eine zweite frei bearbeitbare Bezeichnung würde Änderungen an mehreren Stellen nötig machen.
Eine freigegebene Anforderung kann dagegen den damals bestätigten Artikeltext als Beleg benötigen. Kennzeichnen Sie ihn als historischen Stand und legen Sie fest, wann er übernommen wird.
Fragen Sie bei jeder Wiederholung, ob sie ein Verweis, eine berechnete Anzeige, eine unnötige zweite Pflegestelle oder eine bewusst gespeicherte Momentaufnahme ist.
Vergleich: Aktueller Wert vs. historischer Stand
- Aktueller Wert
- Wird im Artikelstamm gepflegt; automatisch in Anforderungen angezeigt
- Historischer Stand
- Wird bei Freigabe der Anforderung gespeichert; bleibt unverändert
Vorteile und Risiken von freigegebenen Artikelbezeichnungen
- Vorteil
- Automatische Aktualisierung auf Basis des aktuellen Stammes
- Nachteil
- Verlust der ursprünglichen Angabe bei Änderung des Artikels
- Lösung
- Speicherung des damaligen Textes als historischer Stand
Kennungen vor der Datenübernahme festlegen
Für jede dauerhaft gespeicherte Datensatzart ist ein stabiles Identitätsmerkmal sinnvoll. Bearbeitbare Namen, Titel und Zeilennummern einer Ansicht eignen sich schlecht, wenn sie sich ändern oder mehrfach vorkommen können.
Eine interne Kennung lässt sich von einer sichtbaren Vorgangsnummer trennen. Bei einer Datenübernahme muss die Zuordnung alter und neuer Kennungen erhalten bleiben, damit Beziehungen nachvollziehbar bleiben.
Eindeutigkeit ist eine durchzusetzende Regel, kein Zahlenformat. In PostgreSQL garantiert auch eine automatisch erzeugte Identity-Spalte für sich genommen keine eindeutigen Werte; dafür braucht sie einen Primärschlüssel oder eine Eindeutigkeitsregel.
Den Entwurf an Fällen prüfen
Gehen Sie eine neue Anforderung mit zwei Positionen, die Korrektur eines Artikelnamens und die Rücknahme einer Anforderung durch. Halten Sie jeweils fest, welcher Datensatz entsteht oder sich ändert, welche Werte nur angezeigt werden und welche Beziehungen bestehen bleiben. Ergänzen Sie einen Fall mit fehlender Angabe und einen mit unbekanntem Artikel.
Das Ergebnis sollte die Datensatzarten, wichtigen Felder, Kennungen, Beziehungen, verbindlichen Quellen und erlaubten Änderungen beschreiben. Darauf lassen sich Formulare und Bearbeitungsansichten aufbauen.
Ergänzen Sie beim Prüfen einen ungültigen Wert, etwa eine nicht positive Menge, und beobachten Sie, ob die vorgesehene Datenquelle ihn tatsächlich zurückweist. Notieren Sie für jede Regel, ob sie technisch durchgesetzt wird oder als fachliche Vereinbarung bestehen bleibt.
Prüfliste für die Datenmodellierung
- Gibt es eine klare Datensatzdefinition?Ein Datensatz steht für genau …
- Sind alle Felder mit Datentyp und Regel versehen?CHECK-Regeln für z. B. positive Mengen
- Sind Beziehungen klar definiert?Fremdschlüssel zwischen Position und Anforderung, Artikel
- Ist die Datenverantwortung festgelegt?Wer legt Begriffe fest? Wer pflegt die Daten?
- Sind stabile Kennungen verwendet?Keine sichtbaren Nummern als Identität
- Werden ungültige Werte abgefangen?Technische Prüfung durch CHECK-Regeln
In diesem Leitfaden
- Tabellen und Beziehungen sinnvoll strukturierenWelche Daten gehören in eigene Tabellen? Beziehungen, Pflichtverweise und Löschregeln für eine interne App am Beispiel einer Geräteausleihe planen.
- Doppelte Datenhaltung vermeidenVerbindliche Werte, Anzeigen und historische Momentaufnahmen unterscheiden – und widersprüchliche Datenkopien in einer internen App abbauen.
- Eindeutige Datensatzkennungen festlegenStabile IDs für interne Apps auswählen: Geltungsbereich, Vergabe, Eindeutigkeitsregeln, Beziehungen und Importzuordnung festlegen.

