Это обсуждалось снова и снова миллион раз. Однако, на мой взгляд, значения NULL существуют по какой-то причине, и вам следует держаться подальше от «магических» значений (даже пустая строка что-то значит, не так ли).
Значения NULL НЕ конвертируются во что-либо во время чтения. Вы получите ноль. Вы должны интерпретировать это как «это значение не было установлено» и относиться к нему таким образом. Если вы замените его каким-либо магическим значением (например, пустой строкой), вы просто ищете проблему, поскольку рано или поздно это магическое значение начнет иметь значение чего-то другого, и вы не будете знать, как отличить его от этих которые никогда не были установлены.
Другими словами, если вы считаете, что свойство является необязательным , то оно определенно является кандидатом на обнуляемость. Всякий раз, когда вы начинаете обсуждать это с собой, помните слово «по желанию», и я уверен, что вы примете правильное решение.