Ein gutes Schema ist client-getrieben, an den Rändern standardmäßig nullbar und ohne Versionen weiterentwickelbar. Es modelliert die Domäne in Begriffen, die Clients tatsächlich nutzen, nicht in deinen Datenbanktabellen.
Nullability
Mache ein Feld nur dann Non-Null (!), wenn du es zurückgeben kannst. Ein übermäßiger Einsatz von ist eine Falle: Wirft ein Non-Null-Feld einen Fehler, nullt es sein gesamtes Parent-Objekt und macht aus einem kleinen Fehler eine große Leerstelle. Bevorzuge nullbar für alles, was von einem nachgelagerten Dienst abhängt.
