Rouven,
Denn alle 3 Optionen können ja im Lauf der einzelnen Inserts zutreffen. Also bei einem weiss ich, dass er keine Nummer hat, beim nächsten kenne ich sie nicht, beim nächsten ist sie xxxx-xxxx.
genau. Wenn du 3 Optionen brauchst, musst du das Feld als NULL deklarieren. Damit signalisierst du der Datenbank gegenüber "hey, pass auf, möglicherweise sage ich dir bei einigen Datensätzen keinen Wert dafür".
Aber im Grunde braucht man doch nie die 3. Option oder?
Entweder 'Inhalt' oder 'kein Inhalt'.
Wie würdest Du das dem Telefonbuch zuordnen?
Möchtest du hingegen datenbankseitig dafür sorgen, dass entweder eine Telefonnummer eingetragen ist, oder zumindest mittels '' signalisiert wird, dass es keine gibt (sinngemäß: verdammt noch mal, stell dem Kunden die Frage und prügele eine Antwort aus ihm raus. Entweder er hat ein Telefon oder nicht), dann deklarierst du die Spalte als NOT NULL - die Datenbank verweigert dann die Angabe von NULL-Werten.
Netter Vergleich :-) Die Angabe von NULL Wert wird verweigert stattdessen steht eben das Feld leer da, was mich zur where bedingung "...where xyz=''"; führt und ordnungsgemäss ausgeführt wird.
thx
rookie