Значения по умолчанию в базе данных могут потребоваться для того, чтобы все записи получали значения, когда поле не допускает и не должно принимать значения NULL. Иногда значение по умолчанию может быть добавлено, когда поле изменяется с NULL на NULL, чтобы предоставить значения для существующих записей. Тем не менее, значения по умолчанию должны применяться, только если они имеют смысл. Значение по умолчанию для RecordCreatedDate имеет смысл, тогда вы знаете, что оно будет заполнено независимо от того, знает приложение, чтобы заполнить поле или нет. Значение по умолчанию для количества элементов в заказе не имеет смысла и должно возвращать ошибку приложению, если оно не было заполнено.
Использование значений по умолчанию, чтобы избежать появления нулей там, где они подходят, на мой взгляд, очень плохая практика. В частности, установка целого числа в значение по умолчанию, равное 0, если вы не знаете, каким оно должно быть, глупо и недальновидно, поскольку могут быть фактические значения 0. Нуль означает неизвестность, и если нельзя ожидать, что данные будут известны во время ввода данных, очень плохая практика - делать столбец необнуляемым и устанавливать значение по умолчанию, особенно для целых чисел и дат. Теперь вы не знаете, является ли значение действительно нулевым или только заполнителем, пока не узнаете значение. Теперь вам нужно написать специальные правила для поддельных значений (особенно если вы подставили поддельное значение для даты типа «19000101»). Никогда не используйте значения по умолчанию в базе данных только для того, чтобы избежать обнуляемых столбцов.