Re: Вам важливо бачити історію змін коментарів?
При чому тут застосування описаної мною системи до кількості коментарів, які вам здались абстакцією. Ви вже починаєте плутатись...
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Обговорення → Вам важливо бачити історію змін коментарів?
Для відправлення відповіді ви повинні увійти або зареєструватися
При чому тут застосування описаної мною системи до кількості коментарів, які вам здались абстакцією. Ви вже починаєте плутатись...
А що, вже є в чому плутатись?
"Елементарно заходити" на сторонній іншомовний ресурс аби на ньому вишуковувати якийсь розрахунок середньої кількості коментарів деінде я не буду, тут ви праві. Так само як і знати про кожне обговорення на тому ресурсі ніхто не зобов'язаний.
Вважаєте, що в абсолютній кількості випадків оверхеда з точки зору марнування ресурсів немає - чудово, вам видніше.
Хм, цікаво. Думав, що буде більше скептиків. Хоча... де ж P.Y., чого він не каже, що ці всі нові фічі - фігня.
Фігня — лише фічі, що ставлять додаткові вимоги до клієнта. Здається, я ставив у приклад Вікіпедію — один із найпопулярніших ресурсів, де не надто зловживають модними віяннями веб-технологій. До речі, історія змін у Вікіпедії — навіть не додаткова фіча, а одна з основних функцій, без якої колективне редагування статей було б значно складнішим.
Йооой... ви ж того, обережніше.. бо відчуваю, наступна тема буде "Чи потрібне колективне редагування коментарів"...
Lordie написав:Я замість нього буду... Якщо в цьому немає об'єктивної потреби, це звичайнісіньке марнування ресурсів.
Коли я проектував веб-ресурс, що має витримувати високе навантаження, то зовсім несподівано для себе виявив, що функціональність "історія змін коментарів" досить просто реалізувати.
Яка ідея:
1. всі коментарі зберігаються в JSON'і в одному рядку з постом, для якого вони призначаються;
2. щоб сервер не займався розпарсенням коментарів, що є досить ресурсоємною операцією, всі нові коментарі просто додаються до попередніх;
3. в іншому полі (цього ж рядка) зберігатимуться всі версії змін коментарів, тобто і зміни коментарів не будуть розпарсюватись на сервері, а будуть просто додаватись;
4. коли користувач робить запит певного поста, то заразом вибирає і коментарі;
5. на боці клієнта, спочатку оновлюються коментарі до самої актуальної версії, а потім роздруковуються;Очевидно, що використовуючи таку схему, вже не складно додати функціональність для перегляду історії змін.
Залишилось придумати який інтерфейс вибрати... можливо роздрукувати щось типу:
Попередні всерсії коментарів: 1, 2, 3, 4...
По-моєму, простіше написати тригер для MySQL, що при зміні коментаря копіюватиме з нього дані в окрему таблицю (тим самим, знімається проблема даних, що зайвий раз ганяються між скриптом і базою даних). Під кожним повідомленням (чи під кожним, що змінювалось) чіпляємо посилання на його історію змін, де можна проглянути всі попередні версії...
Йооой... ви ж того, обережніше.. бо відчуваю, наступна тема буде "Чи потрібне колективне редагування коментарів"...
Поки що ця фіча доступна лише для адмінів та модераторів
Йооой... ви ж того, обережніше.. бо відчуваю, наступна тема буде "Чи потрібне колективне редагування коментарів"...
А що, на стековерфлов є таке, корисна дуже фіча, як на мене.
По-моєму, простіше написати тригер для MySQL, що при зміні коментаря копіюватиме з нього дані в окрему таблицю (тим самим, знімається проблема даних, що зайвий раз ганяються між скриптом і базою даних). Під кожним повідомленням (чи під кожним, що змінювалось) чіпляємо посилання на його історію змін, де можна проглянути всі попередні версії...
Стосовно трегерів - гарна ідея!
Раніше я чомусь їх не дуже то й використовував, але тут якраз тригер дуже доречно може робити зчеплення нових зі старими даними.
Ось така інструкція виконується перед оновленням рядків
-- Перевірка, що оновлюється саме це поле
if (new.`text` != old.`text`)
then set new.`text` = concat(new.`text`, ',', old.`text`);
end if;
Зачотно!
Вже зараз бачу, що краще таки для іншого використовувати трігери, бо в даному випадку при оновленні не складно написати аналогічний case замість if.
До речі, на даний момент на хабрі на порядок поменшало коментарів. Зараз там в середньому пару десятків коментів, а якщо тема цікава, то може й пару сотень назбиратись. Мабуть це пов'язано з відокремленням інших дочірніх сайтів ТМ...
На DOU зараз якраз спостерігається десь в середньому біля двох сотень коментарів, а якщо тема цікава, то і за 2 тисячі може перевалити - це жесть. Хоча система самих коментарів досить проста - одномірний масив, але кожен коментар має свій рівень вкладеності...
Для відправлення відповіді ви повинні увійти або зареєструватися