21

Re: Вам важливо бачити історію змін коментарів?

При чому тут застосування описаної мною системи до кількості коментарів, які вам здались абстакцією. Ви вже починаєте плутатись...

22

Re: Вам важливо бачити історію змін коментарів?

А що, вже є в чому плутатись?
"Елементарно заходити" на сторонній іншомовний ресурс аби на ньому вишуковувати якийсь розрахунок середньої кількості коментарів деінде я не буду, тут ви праві. Так само як і знати про кожне обговорення на тому ресурсі ніхто не зобов'язаний.
Вважаєте, що в абсолютній кількості випадків оверхеда з точки зору марнування ресурсів немає - чудово, вам видніше.

23 Востаннє редагувалося P.Y. (26.06.2015 22:44:37)

Re: Вам важливо бачити історію змін коментарів?

ktretyak написав:

Хм, цікаво. Думав, що буде більше скептиків. Хоча... де ж P.Y., чого він не каже, що ці всі нові фічі - фігня.

Фігня — лише фічі, що ставлять додаткові вимоги до клієнта. Здається, я ставив у приклад Вікіпедію — один із найпопулярніших ресурсів, де не надто зловживають модними віяннями веб-технологій. До речі, історія змін у Вікіпедії — навіть не додаткова фіча, а одна з основних функцій, без якої колективне редагування статей було б значно складнішим.

24

Re: Вам важливо бачити історію змін коментарів?

Йооой... ви ж того, обережніше.. бо відчуваю, наступна тема буде "Чи потрібне колективне редагування коментарів"...

Подякували: Djalin1

25

Re: Вам важливо бачити історію змін коментарів?

ktretyak написав:
Lordie написав:

Я замість нього буду... Якщо в цьому немає об'єктивної потреби, це звичайнісіньке марнування ресурсів.

Коли я проектував веб-ресурс, що має витримувати високе навантаження, то зовсім несподівано для себе виявив, що функціональність "історія змін коментарів" досить просто реалізувати.

Яка ідея:
1. всі коментарі зберігаються в JSON'і в одному рядку з постом, для якого вони призначаються;
2. щоб сервер не займався розпарсенням коментарів, що є досить ресурсоємною операцією, всі нові коментарі просто додаються до попередніх;
3. в іншому полі (цього ж рядка) зберігатимуться всі версії змін коментарів, тобто і зміни коментарів не будуть розпарсюватись на сервері, а будуть просто додаватись;
4. коли користувач робить запит певного поста, то заразом вибирає і коментарі;
5. на боці клієнта, спочатку оновлюються коментарі до самої актуальної версії, а потім роздруковуються;

Очевидно, що використовуючи таку схему, вже не складно додати функціональність для перегляду історії змін.

Залишилось придумати який інтерфейс вибрати... можливо роздрукувати щось типу:

Попередні всерсії коментарів: 1, 2, 3, 4...

По-моєму, простіше написати тригер для MySQL, що при зміні коментаря копіюватиме з нього дані в окрему таблицю (тим самим, знімається проблема даних, що зайвий раз ганяються між скриптом і базою даних). Під кожним повідомленням (чи під кожним, що змінювалось) чіпляємо посилання на його історію змін, де можна проглянути всі попередні версії...

Подякували: Lordie, Djalin, palyvoda3

26

Re: Вам важливо бачити історію змін коментарів?

Lordie написав:

Йооой... ви ж того, обережніше.. бо відчуваю, наступна тема буде "Чи потрібне колективне редагування коментарів"...

Поки що ця фіча доступна лише для адмінів та модераторів ;)

27

Re: Вам важливо бачити історію змін коментарів?

Lordie написав:

Йооой... ви ж того, обережніше.. бо відчуваю, наступна тема буде "Чи потрібне колективне редагування коментарів"...

А що, на стековерфлов є таке, корисна дуже фіча, як на мене.

28

Re: Вам важливо бачити історію змін коментарів?

Прихований текст
quez написав:

А що, на стековерфлов є таке, корисна дуже фіча, як на мене.

Прихований текст

У Океанії редагувались не лише коменти.. Так я параноїк  :D

29

Re: Вам важливо бачити історію змін коментарів?

P.Y. написав:

По-моєму, простіше написати тригер для MySQL, що при зміні коментаря копіюватиме з нього дані в окрему таблицю (тим самим, знімається проблема даних, що зайвий раз ганяються між скриптом і базою даних). Під кожним повідомленням (чи під кожним, що змінювалось) чіпляємо посилання на його історію змін, де можна проглянути всі попередні версії...

Стосовно трегерів - гарна ідея!

Раніше я чомусь їх не дуже то й використовував, але тут якраз тригер дуже доречно може робити зчеплення нових зі старими даними.

Ось така інструкція виконується перед оновленням рядків

-- Перевірка, що оновлюється саме це поле
if (new.`text` != old.`text`)
    then set new.`text` = concat(new.`text`, ',', old.`text`);
end if;

Зачотно!

Подякували: Djalin1

30

Re: Вам важливо бачити історію змін коментарів?

Вже зараз бачу, що краще таки для іншого використовувати трігери, бо в даному випадку при оновленні не складно написати аналогічний case замість if.

31

Re: Вам важливо бачити історію змін коментарів?

До речі, на даний момент на хабрі на порядок поменшало коментарів. Зараз там в середньому пару десятків коментів, а якщо тема цікава, то може й пару сотень назбиратись. Мабуть це пов'язано з відокремленням інших дочірніх сайтів ТМ...

На DOU зараз якраз спостерігається десь в середньому біля двох сотень коментарів, а якщо тема цікава, то і за 2 тисячі може перевалити - це жесть. Хоча система самих коментарів досить проста - одномірний масив, але кожен коментар має свій рівень вкладеності...