"Ich realisiere, das beste Design würde beide Spalten in einer anderen Tabelle speichern, aber das ist im Moment nicht möglich."
Wenn Sie keine Nachschlagetabelle erstellen können, müssen Sie die Bedeutung speichern. Wählen Sie also den Datentyp, der der Bedeutung entspricht. Das heißt, wenn Ihre Aufzählung "Rot, Bernstein, Grün" lautet, wählen Sie varchar2(5)
. Verwenden Sie eine Prüfbedingung, um sie auf eine gültige Eingabe zu beschränken.
Wenn Sie Integer verwenden, müssen Sie die Übersetzung woanders speichern. Die Bedeutung von Daten muss in der Datenbank liegen.
Offensichtlich müssen Sie die Liste der Werte in jeder Benutzeroberfläche duplizieren, die die Spalte füllt. Dies ist die technische Schuld, die entsteht, wenn keine Nachschlagetabelle erstellt wird.
"wäre es besser, einen unbekannten Ursprung mit einem festen Wert oder Null zu repräsentieren?"
Die beste Option wäre ein expliziter Wert von 'unknown'
oder was auch immer passt. Die nächstbeste Option ist null: Nullen sind unordentlich und können Abfragen schwieriger schreiben, aber magische Werte sind schlechter, da sie wie echte Daten funktionieren und daher zu irreführenden Ergebnissen führen können.
scheint relevant: https://stackoverflow.com/questions/203469/how-to-use-enums-in-oracle –