Wo haben ich etwas von "50% Ausnahmen" erzählt?
Transferiere doch bitte die Definition einer Ausnahme im Kontext eines Regelwerkes auf Datenbankdesign.
Ausnahmen sind Abweichungen von einer Regel. Eine Regel kann man pauschal beschreiben, weil sie nun mal Pauschal ist, sonst wäre es ja keine Regel. Und eine der Regeln eines guten Datenbankschemas für relationale Datenbanken gemäß der dritten Normalform, die immer anzustreben ist, ist, dass Attribute nur von sich selbst und seinen Schlüsselelement abhängig sind.
Wendet man das an, kann es keine Stornos mit NULL geben - aber auch keine Tabellen mit 50 Attributen die auch NULL stehen können, denn dann sind sie nicht mehr nur von seinen Schlüsselelement abhängig.
Abgesehen davon baut man solche Datenbankschemen anders auf: Wie gesagt wären "Produkteingeschaften" eine eigene Entität. Das mag vom Denkmuster, welches oftmals in "Zeilen und Spalten" stattfindet zwar erst mal komisch aussehen aber aus Sicht einer Datenbank ist es besser. Und dann verschwinden auch die NULL-Attribute, denn wenn dann einfach nichts für eine Eigenschaft gesetzt ist, ist einfach kein
Eintrag Tupel vorhanden. So ein Design spart übrigens am meisten Speicherplatz
Ein Storno um beim Ur-Thema zu bleiben hat zum Beispiel ja meistens noch weitere, eigene Eigenschaften und wäre demnach auch eine eigene Entität. Auch schon, damit man ein ordentliches System drum herum aufbauen kann. Stornos können ja auch ggf. zurückgenommen werden. Löscht man dann einfach "X"? Was ist mit Buchhaltung? Man löscht solche einträge nicht einfach, sondern bucht einen Korrektureintrag (Audit Trail). Und schon beträgt die Kardinalität von "Umsatz" und "Storno" 1:n. Und ein Storno kann dann positiv und negativ sein und hat ein Wirksamkeitsdatum und der Eintrag ein Systemdatum und vor allem auch einen Sachbearbeiter(!) und eine Erstattungshöhe (Teilstorno...) usw.
Tipp wie man am besten mit den Erstellen eines Datenbankschemas anfägt: Einfach mal das Vorhaben in natürlicher Sprache mit allen Details aufschreiben. Alle Pronomen raussuchen; das sind in der Regel schon mal die Entitäten, mit denen man es zu tun hat. Diese trägt man dann in sein ER-Diagramm ein und fängt an sein Datenbank zu modellieren.