Лично я бы начал любые идентификаторы в базе данных с 1, а не с 0. Затем я бы рассматривал 0 как недопустимое значение для идентификатора.
Причина этого в том, что когда вы работаете с объектами из базы данных в коде, обычно значение идентификатора сохраняется в поле целочисленного типа. В некоторых языках программирования (я говорю на C # и Java) значение по умолчанию для неинициализированных целочисленных полей равно 0, что означает, что если бы поле идентификатора не было установлено в коде, вы получили бы то же значение, что и строка база данных с идентификатором 0. Это приводит к неоднозначности и, возможно, трудно отследить ошибки.