yo,
für "nicht vorhanden" gibt es in Datenbanken exakt einen Wert. Er lautet NULL. Alles andere ist grob fahrlässig.
muss letzich jeder selbst wissen, wie er diese Information abspeichern will. ich spreche auch nur für den kontext datenbanken und nicht allgemein für NULL (wobei meines wissen NULL im zusammenhang mit rdbms eingeführt wurde). aber entscheidend ist, es ist eine zusätzliche info, die aus meiner sicht mit dem NULL wert nichts zu tun hat. NULL steht dafür, dass man keine aussage treffen kann und "nicht vorhanden" ist mal ganz sicher eine aussage(Info).
wenn man NULL als "nicht vorhanden" nimmt, hast du keine möglichkeit mehr, zwischen der eigentlichen funktion, nämlich keine aussage darüber treffen zu können, zu unterscheiden. gerne gebe ich dir dazu ein beispiel.
eine dba/entwickler geht die kundentabelle durch und stellt fest, dass bei einigen die e-mail adresse fehlt. da aber die firma für die zukunft plant, zusätzliche infos und angebote auch per e-mail zu verschicken, druckt er eine liste der kunden aus, die dann von einem mitarbeiter angerufen werden sollen. erklärt sich der kunde bereit, diese zusätzlichen service wahrzunehmen, trägt der mitarbeiter die neue e-mail adresse ein. ist der kunde dazu nicht bereit oder kann der kunde nicht erreicht werden, trägt er nichts ein.
der dba/entwickler prüft am ende der woche, bei wievielen der kunden immer noch die e-mail adresse fehlt. inzwischen sind es auch deutlich weniger (der mitarbeiter war fleissig). also druckt er die jetzt kleinere liste für die nächste woche aus und gibt sie wieder dem mitarbeiter. kurze zeit später klopft der mitarbeiter an die tür und beklagt sich, dass er nun kunden doppelt anruft und die kunden sich dadurch genervt fühlen...
den rest kannst du dir selbst denken, du wirst keine chance haben, die NULL werte aufzuteilen in "schon angerufen will aber nicht oder hat keine e-mail" und zwischen denen, "die noch nicht erreicht werden konnten".
Ilja