Рассинхрон номера сообщения и даты сообщения
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

Рассинхрон номера сообщения и даты сообщения
В 2014 году в мой форум вливали базу форума партнера (его форум появился раньше моего).
При заливке, судя по всему, были сохранены исходные даты вливаемых постов и тем. Получается, номер сообщения инкрементировался, а дата вписывалась старая.
При этом стандартная структура форума предполагает, что большему номеру сообщения соответствует более позднее время.
Мне это вроде бы никак не мешало, пока я не поставил это: [3.2] Статистика
Статистика плывет и скорее всего это связано как раз с некорректной хронологией.
Влитых сообщений с рассинхроном даты достаточно много (более 3000). Некоторые темы в топе ПСов.
Есть ли какие либо средства для решения подобных проблем? Типа "пересчитать даты" )
При заливке, судя по всему, были сохранены исходные даты вливаемых постов и тем. Получается, номер сообщения инкрементировался, а дата вписывалась старая.
При этом стандартная структура форума предполагает, что большему номеру сообщения соответствует более позднее время.
Мне это вроде бы никак не мешало, пока я не поставил это: [3.2] Статистика
Статистика плывет и скорее всего это связано как раз с некорректной хронологией.
Влитых сообщений с рассинхроном даты достаточно много (более 3000). Некоторые темы в топе ПСов.
Есть ли какие либо средства для решения подобных проблем? Типа "пересчитать даты" )
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Рассинхрон номера сообщения и даты сообщения
Стандартных нет, даты по стандарту не должны пересчитываться
Можно посмотреть в БД, какая там разница по датам, и прибавить к некоторому интервалу по id соощений эн-ное количество секунд
Например,
Можно посмотреть в БД, какая там разница по датам, и прибавить к некоторому интервалу по id соощений эн-ное количество секунд
Например,
Код: Выделить всё
UPDATE phpbb_posts SET post_time = post_time + 123321 WHERE post_id > 123 AND post_id < 456
Re: Рассинхрон номера сообщения и даты сообщения
Есть же ещё таблица тем и, возможно, ещё какие-то связанные таблицы?
Кроме того, вливался форум, который существовал с 2006 по 2014 в форум, который существует с 2009 по сегодня. В пересечении 2009-2014 пересчитать скриптом не получится ((
Отправлено спустя 6 минут 48 секунд:
Чем вообще чреват подобный рассинхрон?
Кроме того, вливался форум, который существовал с 2006 по 2014 в форум, который существует с 2009 по сегодня. В пересечении 2009-2014 пересчитать скриптом не получится ((
Отправлено спустя 6 минут 48 секунд:
Чем вообще чреват подобный рассинхрон?
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Рассинхрон номера сообщения и даты сообщения
С
phpbb_topics
можно то же самое можно сделать, с topic_first_post_id - topic_time
и topic_last_post_id - topic_last_post_time
. А можно и стандартную синхронизацию попробовать для начала, когда изменения в phpbb_posts
уже будут
Ничем, кроме иногда не особо логичного отображения
Re: Рассинхрон номера сообщения и даты сообщения
Нет, не получится так. Тут нужен какой-то очень хитрый алгоритм. Полдня голову ломал. Без толку.
Беда в том, что совершенно непонятно, как обнаружить самый важный признак - id последнего залитого сообщения.
Беда в том, что совершенно непонятно, как обнаружить самый важный признак - id последнего залитого сообщения.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Рассинхрон номера сообщения и даты сообщения
например
Код: Выделить всё
SELECT topic_last_post_id FROM phpbb_topics WHERE topic_id = 1
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Re: Рассинхрон номера сообщения и даты сообщения
Осознал, что надо танцевать от первого кривого сообщения, а не от последнего. Что скажете про такой алгоритм?
Некорректное время у меня начинается, например, с сообщения № 300001. Соответственно, 1<=post_id<=300000 это корректные родные сообщения моего форума с корректным временем.
Берем время от сообщения №300000. Это будет стартовое время.
Начинаем перебирать таблицу с поста № 300001. Если его время < стартовое время, то присваиваем ему стартовое время + 10 сек, берем это время как стартовое и идем далее.
Если его время больше чем стартовое время, то берем его время как стартовое и идем дальше (это родное сообщение).
И так пробегаем всю таблицу.
По идее должно корректно отработать?
Некорректное время у меня начинается, например, с сообщения № 300001. Соответственно, 1<=post_id<=300000 это корректные родные сообщения моего форума с корректным временем.
Берем время от сообщения №300000. Это будет стартовое время.
Начинаем перебирать таблицу с поста № 300001. Если его время < стартовое время, то присваиваем ему стартовое время + 10 сек, берем это время как стартовое и идем далее.
Если его время больше чем стартовое время, то берем его время как стартовое и идем дальше (это родное сообщение).
И так пробегаем всю таблицу.
По идее должно корректно отработать?
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Рассинхрон номера сообщения и даты сообщения
Это все бесполезно - синхронизация форума все вернет на свои места.
Тут подробно
[3.1][beta] Reassign First Post
Тут подробно
[3.1][beta] Reassign First Post
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Re: Рассинхрон номера сообщения и даты сообщения
Я верно понимаю, что если поменять даты сообщений в таблице постов по моему алгоритму, то после синхронизации вообще может сложиться так, что текущие первые посты тем станут не первыми? И решения нет?
Ладно, тогда другой вопрос. Для ручной переборки мне нужно как-то вычленить все посты или темы, хронология которых некорректна. Т.е. просто сделать выборку. А я уже руками этот трэш расфасую со временем. Это как-то возможно сделать?
Надо, кстати, народ об этой проблеме тут предупредить: Слияние двух форумов
Я так понимаю, мне слияние делалось именно этим скриптом.
Ладно, тогда другой вопрос. Для ручной переборки мне нужно как-то вычленить все посты или темы, хронология которых некорректна. Т.е. просто сделать выборку. А я уже руками этот трэш расфасую со временем. Это как-то возможно сделать?
Надо, кстати, народ об этой проблеме тут предупредить: Слияние двух форумов
Я так понимаю, мне слияние делалось именно этим скриптом.
-
- Former team member
- Сообщения: 2214
- Стаж: 20 лет 1 месяц
- Откуда: {postrow.POSTER_FROM}
- Поблагодарили: 68 раз
Re: Рассинхрон номера сообщения и даты сообщения
Логичней процедуру сбора статистики изменить так, чтобы она таймштамп брала за основу, а не айди сообщения.
чтобы нормально ездить по нашим дорогам, надо не дорогу нормальной сделать, а все машины переделать на гусеничный ход
Совершенно нет. Если изменять, например, время сообщения, то тоже самое получится. Каждый раз синхронизировать базу ради статистики? Глупо.rst писал(а): 31.03.2018 2:10 При этом стандартная структура форума предполагает, что большему номеру сообщения соответствует более позднее время.
чтобы нормально ездить по нашим дорогам, надо не дорогу нормальной сделать, а все машины переделать на гусеничный ход
//
// That's all, Folks!
// -------------------------------------------------
// That's all, Folks!
// -------------------------------------------------
Re: Рассинхрон номера сообщения и даты сообщения
Вы правы. Вопрос снят.
Проблему со статистикой решил. Расширение было кривое и потребовалась пара правок.
Проблему со статистикой решил. Расширение было кривое и потребовалась пара правок.