Для редактора базы данных в php требуется веб-интерфейс для параллелизма - PullRequest
2 голосов
/ 09 июня 2010

Я хочу иметь редактор записей на PHP и хочу определить, обновлялся ли он уже во время коммита.

Я уже прочитал некоторые решения, и они предлагают столбец метки времени или инверсию строк.

Есть ли у кого-нибудь другие общие решения, не связанные с изменением структуры базы данных?

Я собирался хэшировать содержимое записи при первоначальном выборе и сохранять в скрытом поле, а затем после того, как пользователь отправляет изменения:

  1. СТАРТОВАЯ СДЕЛКА
  2. Выполнить тот же выбор еще раз, но с блокировкой optomisitc
  3. Убедитесь, что новый хэш не отличается от исходного, откатитесь, если это так.
  4. Обновление, полагаясь на DB для обнаружения нарушения блокировки optomisitc, возможного между этапами 3 и 4
  5. COMMIT

Кто-нибудь есть лучшие методы?

Спасибо

Alan

1 Ответ

2 голосов
/ 09 июня 2010

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

UPDATE sometable SET .... 
WHERE primary_key=$original_primary_key
AND timestamp=$original_timestamp

Если строки обновлены = 0, то кто-то еще обновил запись с момента ее получения.

С

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...