Постоянно пропадают записи в БД

Dr_Jones

Новичок
Постоянно пропадают записи в БД

Использую каталог древовидной структуры с записью предыдущего и следующего элемента дерева (подобный каталог где-то описан на этом сайте). После добавления элемента в дерево пересчитываются и обновляются поля "предыдущий" и "следующий" у всех записей таблицы.
При больших обьемах каталога некоторое количество записей пропадает.

Есть 3 версии:
1. После добавления одной записи начинается пересчет и обновление таблицы, а в этот момент юзер добавляет еще одну и таблица рушится и пропадают некоторые записи.
2. Кто-то нашел какую-то дырку в скрипте удаления (возможно и поисковики). Хотя вроде дыр нет и удаление позволено авторизованым пользователям и только его записи.
3. Взлом.

Какие есть еще мысли?
Возможен ли первый вариант?
 

chisto_tolyan

Враг народа
т.е. у тебя при добавлении новой записи в БД, перестраивается вся таблица?)
 

Dr_Jones

Новичок
Автор оригинала: Necromant
http://phpclub.ru/detail/article/db_tree

1) хранить маркер, операции перестройки дерева,
к примеру файл
PHP:
    $fname = 'mark';
    while (file_exists($fname)) {
           sleep(1);
    } 
    $fp = fopen($fanamem 'w+');
    fclose($fp);
    ...
    unlink($fname);
2) блокировать таблицу на время измения LOCK TABLES
http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html
Спасибо. Попробую.
А как быть с кешированием функции file_exists. Сбрасывать кеш затратно. Может в табличку писать?
 
Сверху