На самом деле Null
означает не «неизвестный», а просто «нет данных».Он используется в SQL (и других средах), где данные просто отсутствуют для данного поля.
Что касается вашего беспокойства по поводу 3-точечной логики и исключений, ваше приложение, вероятно, использует больше языка, чем простоSQL.Код вашей системы, который взаимодействует с SQL, должен решать вопрос о том, что делать с Null
полями.
Если Null
просто неприемлемо (то есть вы не можете иметь свою структуру данных без-null value), тогда вам лучше вообще избегать понятий «неизвестно» и «нет данных».Сделайте поле обязательным, установив значение Null
для столбца SQL в значение false;это делает так, что Null
не может быть введено как допустимое значение.Например,
CREATE TABLE foo (bar INT NOT NULL);