Когда в БД нужно делать «По умолчанию: Null», а когда «По умолчанию: НЕТ»?
Конечно, может оказаться так, что базу проектировали невнимательно, в спешке или еще как-то криво, но чаще оказывается, что этот "беспорядок" для чего-то нужен.
Представим, что по требованиям бизнес-логики в табличке "user" поле "дата регистрации" обязательно должно быть заполнена. Если ее нет - это ошибка. Ставим not null.
И "email" обязательный - тоже not null.
В этой-же таблице поле "phone" необязательное - значит придется разрешить null.
Например:books
id, author_id, title, ...

book_authors
id, first_name, last_name, ...
В таблице books поле author_id должно быть NULL'able, если автор книги может быть неизвестен и Вы хотите настроить ограничения внешних ключей.
Если в базу данных сначала добавляются книги, а уже потом указывается автор, почему бы не сделать, чтобы по умолчанию всегда был NULL? В таком случае Вам не нужно будет прямо указывать это в запросе на вставку записи.
В других случаях:
Значение по умолчанию всегда должно совпадать по типу со столбцом. Если, скажем, столбец объявлен как DECIMAL, не нужно в качестве умолчания указывать значение типа INTEGER.
https://www.sqlstyle.guide/ru/#%D0%B7%D0%BD%D0%B0%...