Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 17
Dollor Сообщение 01/07/2007 16:55 Копия темы
Принцип отметки о прочтении на форуме Вопщем дело такое, пишу свой форум. Всё замечательно, но столкнулся с таким делом. что при заходе авторизирвоанного юзверя на форум нужно помечать темы в которых есть не прочитанные сообщение. В принципе как сейчас на всех известных движках. Т.е. показать какие сообщения ещё не прочитаны. Но как это реализовать в базе данных? Т.е. по какому вообще принципу такое можно выдумать и сделать?

Была идея сделать таблицу по такому принципу:

id юзверя id сообщения не прочитанного
----------------|---------------------------- -----------------|
1 |23,89,100 |

Т.е: 1 – уникальынй id юзверя, а 23,89,100 – это уникальыне id сообщений которые перечисляются через запятую.
Т.е. когда кто-то создаёт тему то при сохранении скрипт пробегается по всей базе юзверей и вписывает id нового сообщения в этот список. По сути, реализовать не сложно, но когда пользователей будет очень много, то это будет убийственно для сервака – переписать данные во всех базах юзверей. Или не помрёт? Может есть более рациональный выход? :)
csky Сообщение 01/07/2007 17:04 Копия темы
Вариаций много. Посмотрите те же сегодняшние форумы, но только не так, как у вас=)
Agent_007 Сообщение 01/07/2007 17:14 Копия темы
Dollor Сообщение 01/07/2007 17:52 Копия темы
т.е. писать в дополнительное поле к сообщению всех юзверей которые не видели, а как увидели то удалять их id из списка? Так то тоже вариант, но всё же баш на баш грузится...пробовал поковыряться в булке, принципа пока не пойму как у них делается :)
Codeblight Сообщение 01/07/2007 18:31 Копия темы
ну я бы в куки сохранил id последнего поста в табле (они обычно auto_increment) на выходе, потом при логоне выбрал бы все что больше – они скорее всего не читаны. по id поста можно бычно узнать топик (если у тебя не так – советую переделать). делать такой гемор в бд ИМХО равносильно убитию об стену.
п.с. юзеров может быть сотни тысяч, у меня сейчас уже 50 килосообщений на форуме, неужели для 500 чел * 50 кс + 500 = 25 00500 айдишников хранить ?
gaen Сообщение 01/07/2007 18:43 Копия темы
я бы сделал ещё более наоборот – записывал ид юзеров, которые видели сообщение, ибо таких меньше будет
csky Сообщение 01/07/2007 18:53 Копия темы
Ну дайте человеку попробовать, потом само придет понимание=)))
FenixDeveloper Сообщение 01/07/2007 23:29 Копия темы
Оптимальнее было бы просто запоминать не сообщения а темы, то есть пользователь вошёл на сайт, прочёл тему и в базе сохранилась дата его захода на сайт и отметка о прочтении темы, таким образом когда пользователь снова заходит на сайт все темы которые не отмечены с прошлого раза автоматически полность не прочитаны (то есть все сообщения), в тех которые прочитал не прочитаны те сообщения которые были добавлены после его захода на сайт. Вот, это если не думая и не извращаясь.
FenixDeveloper Сообщение 01/07/2007 23:29 Копия темы
Вы правы, не успел прочесть ваше сообщение, надо было и правда дать подумать :)
Dollor Сообщение 02/07/2007 04:15 Копия темы
Насчёт даты последнего посещения и даты напсиания темы думал сразу тоже, но проблема ведь в том, что юзверь может зайти потом но тему не просмотреть какую-то, а она уже бы отметилась как прочтённая!
А вот Codeblight дельный совет дал! по поводу последней id в печенье! Да, у меня форум так и сделан, что у каждой свой уникальный, я ж не дурак :))) Думаю исходя из этого совета и потопаю дальше писать свой форум :)
НО опять же пробема с тем же как и с датами, id идёт по возрастанию, если юзверь будет читать вразброс (это 100% будет так) то многие темы автоматом тоже станут прочитанными – этот вариант тоже не true
Блин, как же сделать то :)
А насчёт помечать в таблице темы кто прочёл – гиблое дело, когда юзверей очень много то это перечисление в скором времени будет весить больше чем вся база портала :)
Dollor Сообщение 02/07/2007 04:27 Копия темы
Единственное ещё как вариант – это действовать по такому алгоритму: юзверь ушёл форума – запомнили в печенье id последней прочтённой темы (наибольшее число которое уникально) При новом заходе на форум читаем id из печенья и записываем в сессию котоаря во время всего сеанса не изменяется. Скриптом пересчитываем id тем которые больше нашего числа из печенья и помечаем их не прочтёнными и по мере прочтения записываем в печенья новый id пока не будет достигнуто максимальное число из прочтённых. И в следующий раз при заходе, конечно, некоторы темы котоыре он не прочитал будут уже помечены прочтёнными но что делать, не вечно же хранить инфу о том, что какую-то тему он не прочёл :)

Есть у кого что высказать по данному поводу?
indra Сообщение 02/07/2007 08:28 Копия темы
делай лучше как изначально предложил :о)))
Dollor Сообщение 02/07/2007 13:27 Копия темы
Не, весить дофигища будет такое дело :)
indra Сообщение 02/07/2007 14:12 Копия темы
планируешь делать форум с посещаемостью в 1000000 человек?
Dollor Сообщение 02/07/2007 17:46 Копия темы
доо :) А как же? :) Даже больше :)
gogolev Сообщение 03/07/2007 10:55 Копия темы
Посмотрите softwaremaniacs.org/blog/...
Methos Сообщение 09/07/2007 16:08 Копия темы
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"