|
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
Копия темы
Вариаций много. Посмотрите те же сегодняшние форумы, но только не так, как у вас=)
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 14:12
Копия темы
0
планируешь делать форум с посещаемостью в 1000000 человек? |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |