Я думаю, что у вас есть 2 вопроса здесь:
Если пометить поля, как не пустой?
Да, предполагая, что вы никогда не намереваетесь провести строку, чтобы иметь нулевое значение в этом поле. Подумайте о том, что «не null» является самым простым типом ограничений, которые вы можете поместить в поле. Ограничения в базе данных помогают обеспечить постоянство данных, оправдывая ожидания.
Нельзя заполнить поля по умолчанию?
Только при наличии очевидного значения по умолчанию. Например, в поле «Платные» таблицы счетов-фактур может быть значение по умолчанию 0 (false). В общем случае это работает наоборот: если поле имеет значение по умолчанию, то оно должно также быть не равным нулю.
Не создавайте значения по умолчанию только для значений по умолчанию - если поле не должно быть нулевым, но универсального значения по умолчанию нет, а затем оставьте его. Это гарантирует, что любые инструкции INSERT должны предоставить значение для этого поля.
«Использовать значения по умолчанию зависит от того, как данные вставляются. Если есть интерфейс с проверкой, вам не нужны значения по умолчанию, IMHO». Плохой выбор дизайна, базы данных вставляются из многих источников differnt, отличных от пользовательского интерфейса, по умолчанию, если необходимо, необходимо указать в базе данных, а не в пользовательском интерфейсе. – HLGEM
В основном хорошо, но я думаю, что иногда вам нужно различать NULL, который является «неизвестным» и «не имеет менеджера». Ничто не отличается от NULL. –
Когда использовать значения по умолчанию гораздо более спорными, тогда вопрос NULL, который, как мне кажется (знаю, действительно), может стать трудно справиться по мере роста системы. Если менеджер неизвестен, но мы знаем, что есть менеджер, который не должен обрабатываться при создании «Неизвестного» менеджера, это все, что я говорю. – cdonner