Я предпочитаю модели данных, которые вообще предотвращают существование недействительных данных. Если вы используете второй подход и создаете отношение внешнего ключа между DefaultChildId и ChildTable, то вы можете добавить ограничения, чтобы гарантировать, что ваша база данных никогда не будет в недопустимом состоянии - если вы попытаетесь, скажем, удалить дочерний элемент, это чей-то ребенок по умолчанию, база данных помешает вам. При первом подходе это не так.
В частности (как отмечено в комментарии), ограничение ON DELETE RESTRICT должно использоваться для DefaultChildId и ON DELETE CASCADE для ParentID. Это позволяет создавать записи с большей гибкостью (вам не нужно иметь дочерний элемент по умолчанию, чтобы иметь возможность создать родительский элемент), предотвращать случайное удаление дочернего элемента по умолчанию без предварительного обновления до нового по умолчанию и интеллектуально обрабатывает удаление родитель.