Un bon schéma est piloté par le client, nullable par défaut aux frontières et évolutif sans versionnage. Il modélise le domaine dans les termes que les clients utilisent réellement, pas vos tables de base de données.
Nullability
Ne rendez un champ non-null (!) que lorsque vous pouvez toujours le renvoyer. Abuser du est un piège : si un champ non-null tombe en erreur, il met à null l'ensemble de son objet parent, transformant un petit échec en un grand vide. Préférez nullable pour tout ce qui dépend d'un service en aval.
