Использование PHP-кода для автоматического сброса последовательности идентификаторов в порядок в таблице mysql после удаления

#php #mysql

#php #mysql

Вопрос:

Здравствуйте, я хочу выполнить два запроса в этом коде. Первый удаляет строку в таблице mysql, а второй приводит значение идентификатора в порядок в правильной последовательности.

 if(isset($_POST["image_id"]))
{   
    $file_path = 'files/' . $_POST["image_name"];
    if(unlink($file_path))
    {
        $count= 0;
        $count  ;
        $query1 = "DELETE FROM tbl_image WHERE image_id = '".$_POST["image_id"]."'";
        $query2 = "UPDATE 'tbl_image' SET 'image_id' = '$count' " ;
        $statement = $connect->prepare($query1, $query2);
        $statement->execute();
    }
}
  

Комментарии:

1. это вопрос или утверждение?

2. является ли image_id полем автоинкремента / первичного ключа? если это так, то это не очень хорошая идея. первичный ключ предназначен для идентификации строки

3. Не переупорядочивайте идентификаторы. Если вам нужен порядковый номер, который что-то обозначает, используйте другое поле, но это редко бывает необходимо.

4. the second reorders the id value to the right sequence Почему? — плохая идея связываться со значениями суррогатного ключа.

5. Но ваша идея довольно сумасшедшая, если вы подумаете об этом. Представьте ситуацию: кто-то отправил запрос на удаление идентификатора изображения 10. Итак, теперь это удалено. Этот человек думает, что он удален. Теперь они хотят удалить идентификатор изображения 11. Но перед этим вы перенумеровали все изображения, так что одно с идентификатором 11 теперь имеет идентификатор 10, а одно с 12 теперь имеет идентификатор 11. Итак, человек, который думал, что удаляет изображение кошки с идентификатором 11, теперь фактически удаляет изображение собаки, у которой раньше был идентификатор 12, но теперь есть идентификатор 11. И тогда они не очень довольны этим.