Backend, APIs & Daten · Gemischt

Ein Datenmodell entwerfen, das jahrelang hält

In einem Satz: Ein gutes Modell bildet die Geschäftsrealität ab, nicht den ersten Bildschirm, den man Sie zu bauen bat.

Bei den Entitäten beginnen

Was die Dinge in der Welt sind — Kunde, Bestellung, Artikel, Zahlung — und die Beziehungen zwischen ihnen. Namen, die zur Sprache des Geschäftsteams passen, sparen unzählige Missverständnisse.

Plätten Sie Viele-zu-viele-Beziehungen nicht in Textfelder. „Tags durch Kommas getrennt“ ist eine Schuld, die man beim ersten Filtern danach schmerzhaft tilgt.

Eine Tatsache von einem Zustand unterscheiden

Ein aktueller Zustand ändert sich. Eine Tatsache — ist geschehen. Eine Bestellung hat einen Zustand; eine Zahlung ist ein eingetretenes Ereignis. Systeme, die die Historie verlieren, können grundlegende Fragen wie „was war der Preis an jenem Tag“ nicht beantworten.

Also: Halten Sie Ereignisdatensätze neben Zustandsdatensätzen, besonders bei allem, was Geld und Berechtigungen berührt.

Felder, die sich immer lohnen

Erstellungs- und Aktualisierungszeit, wer es ausführte, eine Version oder ein Stempel zur Konflikterkennung, und ein weiches Löschen statt eines harten an Stellen, an denen eine Wiederherstellung nötig sein könnte.

Im Detail

Wenn ein Modell sich ändern muss, bevorzugen Sie Hinzufügen vor Löschen und führen die Änderung als gestufte Migration aus. Und dokumentieren Sie Modellentscheidungen kurz — warum es zwei Tabellen und nicht eine gibt — denn in einem Jahr erinnert sich niemand, und die Versuchung, etwas Bewusstes zu vereinfachen, ist groß.