ФорумПрограммированиеPHP для идиотов → Одновременное редактирование чего-то. Запрет, разрешение, разруливание коллизий.

Одновременное редактирование чего-то. Запрет, разрешение, разруливание коллизий.

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 ноября 2009 г. 14:37

    Давайте-ка попиздим о чем-нибудь интересном. В последнее время мне больше нравится не работать а болтать/читать что-то. Я так типа развиваюсь, узнаю новое.

    Предлагаю тему-сабж. Вот я редактирую новость и пошел сделать чай/забить булик. Пока я бродил - кто-то уже отредактировал новость, я жмакаю на кнопку "сохранить" и перезатираю изменения второго чувака. А по-хорошему - меня нужно уведомить о том, что произошли изменения в редактируемом документе.

    Да, такая фигня в общем-то несложно делается. Кто как бы делал ее? Уже существуют всякие шаблоны на эту тему, типа optimistic locking.

    + сюда же до кучи можно отнести версионность. Новость редактировалась 10 раз и я хочу посмотреть все ревизии ее, в случае чего - откатиться до какой-то.

    Ох, меня понесло. Еще сюда же предлагаю отнести такую тему, как одновременная работа над каким-то документом, когда изменения нужно мержить. Имеется в виду такой сервис, как этот сайт http://translated.by/you/distributed-revision-control-with-mercurial/trans/
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 15:17, спустя 40 минут 38 секунд

    я бы храли дату и ид юзера последней редакции
    все умрут, а я изумруд
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 ноября 2009 г. 15:36, спустя 19 минут 11 секунд

    а если у нас на сайте один виртуал, над которым трудится целая команда всяких пеарщикоф, копирайтеров и тд? Все они под одним id входят.

    прошу отвечать поразвернутей, товарищи.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 29 ноября 2009 г. 15:43, спустя 6 минут 51 секунду

    Абырвалг, такая схема реализована на данном форуме ввиде добавления записи: если, пока ты писал, кто-то уже добавил новое, то тебе выскакивает при отправке об этом мессага. Сделано, как сказал md5 на основе времени последнего обновления (время последнего обновления должно отличатся в меньшую сторону от времени, когда ты открыл новость для редактирования) + id юзера. Самый простой вариант.
    А версионность в более чем 2 предыдущих версии - ИМХО, нах не нужно, кроме как в период разработки, но это совсем другое.

    п.с. Сохранение изменений я впервые увидел в новых версиях ВордПерсса. НО!, там ведь из-за этих "запасных аэродромов" база разрастается как говно при попадании в него дрожжей.
    Спустя 111 сек.

    а если у нас на сайте один виртуал, над которым трудится целая команда всяких пеарщикоф, копирайтеров и тд? Все они под одним id входят.

    прошу отвечать поразвернутей, товарищи.

    если у вас нет нормального деления по правам (все ходют из-под одного аккаунта), то лучше в первую очередь им займитесь, а не про йухню всякую думаете. Это ж пездец работать под одним аккаунтом в 3 и более пары рук.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 ноября 2009 г. 16:02, спустя 19 минут 8 секунд

    если у вас нет нормального деления по правам (все ходют из-под одного аккаунта), то лучше в первую очередь им займитесь, а не про йухню всякую думаете. Это ж пездец работать под одним аккаунтом в 3 и более пары рук.

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

    я не заметил дату обновления, поэтому такой вопрос про виртуалов и возник. Показалось, что md5 только на основе user_id предлагает сохранять, сорри.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 16:06, спустя 3 минуты 57 секунд


    Показалось, что md5 только на основе user_id предлагает сохранять, сорри.
    внимательнэй будь, учэнык
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 16:59, спустя 52 минуты 26 секунд

    да база у вордпресса уг становится изза версий, я хз почему они не оптимизируют это дело (запрос или разнесут в таблицы, как могут), но чем больше постов тем больше пиздец серверу
    Сапожник без сапог
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 17:12, спустя 13 минут 20 секунд


    да база у вордпресса уг становится изза версий, я хз почему они не оптимизируют это дело (запрос или разнесут в таблицы, как могут), но чем больше постов тем больше пиздец серверу
    кстати, в вордпресе можно эту хуету вырубить?
    пиздец она глючная
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 17:26, спустя 13 минут 41 секунду

    md5, хз, не в теме)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 19:06, спустя 1 час 40 минут 11 секунд

    ревизии можно чистить через плагин
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 20:21, спустя 1 час 14 минут 37 секунд

    плагинчег из 2 строк)

    delete from … :D
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 21:11, спустя 50 минут 5 секунд

    Ага:

    function delete_revision_act() {
    global $wpdb;
    $sql = "DELETE FROM $wpdb->posts WHERE post_type = 'revision'";
    $results = $wpdb -> get_results($sql);
    }
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 29 ноября 2009 г. 23:05, спустя 1 час 54 минуты 31 секунду

    Чистить-то можно, но это не вариант.
    А относительно "полностью вырубить", то только ковырянием в ядре, так как это типа "фирменная фича" у ВП.
    А вообще, по-хорошему, нужно было бы в настройках дать возможность указывать кол-во ревизий + не создавать постоянно новые записи в одной таблице в постами, а сделать для этого отдельную таблицу в БД.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 ноября 2009 г. 23:12, спустя 7 минут 16 секунд

    Givi, на самом деле похуй на это при присутствии правильных индексов и запросов использующих их.
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 30 ноября 2009 г. 2:05, спустя 2 часа 52 минуты 51 секунду

    phpdude, ну я считаю, что разница в размере таблицы в 3+ раз от возможной таки дает свои тормоза в выборке нужных данных. Да и лишнее место, которое занимается ненужными на 95% данными тоже нахер использовать.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!