древо комментариев

1. ramzes (27.08.2011 / 18:08)
Ака в контакте стена.
(лечусь от температуры горячим пивом, так что на ошибки не серчайте)
суть проблемы в следующем, надо как то определять что удалять по старрсти а что нет.
т.е. коммент к комменту может быть древним, но корневой коммент все еще актуален и иметь свежие комменты, удалять нельзя, но как определить?
и то же с файлами, массовое удаление комментов идет, а вот прикрепленных к ним файлов нет, х.з как определить нормально без цикла старье.
может кто себе писал подобное, был бы рад советам..
з.ы. про готовые классы не надо, эти мамонты всю систему в два раза минимум тормозят, под аяксом вообще усыпят сайт

2. Петр (27.08.2011 / 19:02)
Я не писал, но все же полагаю, что это зависит от способа хранения - можно хранить все комментарии в одной таблице и тогда удаление будет в 1 простой запрос.

3. ramzes (27.08.2011 / 19:14)
они и есть в одной таблице, корневые с parent 0
суть не в самом удалении, а в определении старости
1 бла бла - год назад
___1а бла бла - месяц назад
___1б бла бла - час назад
2 бла бла - два часа назад

4. KOZZ (27.08.2011 / 19:16)
вообще не осилил %)

5. ramzes (27.08.2011 / 19:20)
4. eGo в Общаге, стена в контакте видел?smile или лента в г+
автоудаление старья надо придумать к такой же системе
http://i.imgur.com/JT6DN.png

6. Петр (27.08.2011 / 19:33)
Что значит "год назад"? У тебя разве не timestamp или datetime? Я бы выбрал именно этот тип. С файлами тоже, кстати, от хранения зависит.

7. ramzes (27.08.2011 / 19:36)
6. Im-ieee,
год назад, это просто пример старости поста.
у меня инт вообщеsmile
блин, не знаю как еще обьяснить то.
суть в том что нельзя удалять годовалый коммент если он к посту к которому есть свежие комменты
хотя... похоже надо структуру менять....

8. Петр (27.08.2011 / 20:12)
Ну, в принципе, если удаление по крону, то можно и циклом, не особо критично.

9. ramzes (27.08.2011 / 20:14)
нет, удаление при добавлении нового коммента

10. KOZZ (27.08.2011 / 20:19)
9. ramzes, а может нужно не в сторону удаления, а в сторону выборки копать?
ну то есть хранить все, а выбирать только нужное, а не перезаписывать?

11. ramzes (27.08.2011 / 20:28)
10. eGo в Общаге, я и не перезаписываю ни чего, при чем тут это?
с выборкой тоже все отлично.
проблема в чистке, т.к. за месяц легко можно сотню тысяч постов набить в бд
с учетом что выводятся только последние 100, остальное мусор тормозящий бд, вот от него я и хочу избавиться

12. Maksim (27.08.2011 / 20:59)
Какая вложенность то?
к коментарию один подкомент?
к подкоменту еще есть ?

13. ramzes (27.08.2011 / 21:02)
Нет, только один, но к корневым и чилдам цепляются файлы (отдельная таблица с ключами на коммент и корневой коммент)
Пришла мысль апдейтить корневые при новых чилдах, типа update_time ='".time()."'

14. Maksim (27.08.2011 / 21:31)
ну если так примерно...
DELETE FROM `comments` WHERE `time`>'".$time."' AND `parent`='".$parent."' AND `id`<>'".$parent."'
Вот что мне пришло в голову с перепугу E
Только естественно надо знать идентификатор корня

15. ramzes (27.08.2011 / 21:39)
14. Maksim, не, ну это то не проблема, есть еще таблица файлов.
хотя и это уже не проблемаsmile
сам дурак, не очень продумал структуру таблицы
всем спасибо за советыsmile

16. ramzes (27.08.2011 / 22:56)
http://i.imgur.com/ftROH.png вот что в итоге получилосьsmile

URL: https://visavi.net/topics/24447