Это не сделает вещи более естественными, поскольку это произвольно, ваш код не должен заботиться о том, что это за идентификатор (то есть вы его никогда не видите).
Предположим, что кто-то ищет идентификатор, тогда вы делаете intval($_GET['name'])
на значение (чтобы убедиться, что вы не получили SQL-инъекцию).
Если допустимо, чтобы значение было 0, вы не сможете различить «пропущенную» пустую строку AKA ифактическое 0. Очевидно, что вы можете обойти это: вы можете проверить пустую строку или использовать -1, чтобы указать отсутствие.
Но использовать 0 проще.
Лично яЯ использовал -1, чтобы указать на отсутствие (и разрешить 0), но так как MySQL всегда по умолчанию начинается с 1, я начал немного лениться и просто принять это.