У меня есть таблица, которая получает записи с веб-сайта, и когда эти записи попадают в базу данных, им необходимо назначить следующую категорию в списке категорий, которые могут быть изменены в любое время.
По этой причине я не могу сделать что-то простое, например, для сопоставления первой категории 5 с идентификаторами 1, 6, 11, 16.
Я рассмотрел чтение списка текущих возможных категорий, проверку значения последней вставленной и затем присвоение новой записи следующей категории, но я представляю, если два запроса приходят одновременно, я потенциально может назначить им одну и ту же категорию, а не по порядку.
Итак, мой нынешний раунд мышления следующий:
- блокировка таблиц (категорий и записей)
- вставить новейшую строку в записи
- получить идентификатор новейшей строки
- выбрать строку, предшествующую вставке (используя order by auto_inc_name desc 0, 1)
- взять категорию предыдущей строки и взять следующую из списка кошек
- обновить новую вставленную строку
- разблокировать стол
Я не уверен на 100%, что это будет работать правильно, и, возможно, есть гораздо более простой способ сделать это, поэтому я спрашиваю:
A. Будет ли это работать, как я описал в оригинальной задаче?
B. Есть ли у вас лучший / более простой способ сделать это?
Спасибо ~