Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » php, mysql: вопросы по оптимизации

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, можете посоветовать как лучше сделать несколько функций, которые не так сильно создавали нагрузки?
 
1. Как сделать на форуме, функцию, которая показывает каждому пользователю отдельно, есть новые ответы или нет после его последнего посещения?
 
2. Как сделать опрос, в котором каждый пользователь будет отдавать только 1 голос за 1 ответ?
 
я просто не знаю как сделать лучше, или добавить в БД форумов (там где форумы) 1 таблицу, в которую добавлять номера пользователей которые просмотрели форум? а после добавления нового ответа, то поле очищается?
т.е. добавлять например все номера примерно так "1|4|2|13|61" - id пользователей.
а потом делать проверку, чтоб присутствовал в данном поле определённый номер или нет...
 
а 2 вариант, отдельно создать БД, примерно "id|topic" где id - пользователь а topic - тема, записывать туда пользователя который просмотрел тему, и делать проверку... а после добавления нового ответа в любую из тем, удалять записи с этой бд по topic.... просто очень много идей)))
подскажите как сделать лучше, спасибо

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 15:55 29-12-2013 | Исправлено: Sutar, 01:41 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
если бы вы давали советы, то название темы было бы уместно.
а так как вы их просите, то назвать следует, как минимум, вопросы по оптимизации.
и не забываем указывать язык, надоело уже повторять.
 

Цитата:
Как сделать на форуме, функцию, которая показывает каждому пользователю отдельно, есть новые ответы или нет после его последнего посещения?  

храните время последнего посещения и выбирайте по нему все, что создано после этого времени
 

Цитата:
Как сделать опрос, в котором каждый пользователь будет отдавать только 1 голос за 1 ответ?

сохраняете с ответом id пользователя и проверяете, голосовал ли он ранее. ну а один ответ - радиокнопка + элементарная проверка в скрипте.
 
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:47 29-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
сохраняете с ответом id пользователя и проверяете, голосовал ли он ранее. ну а один ответ - радиокнопка + элементарная проверка в скрипте.  

Спасибо, это я понял и так я сделаю)
 

Цитата:
храните время последнего посещения и выбирайте по нему все, что создано после этого времени  

а вот это я не понял... можно подробней?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 01:38 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
можно подробней?

подробней что? время посещения форума (можно раздела, но если много, то неудобно) храните в куке/сессии (если долгоживущая) или в базе данных.
все, что создано после этого времени - новое.
 
ps: Оптимизация кода PHP
Оптимизация запроса MySQL
так что название не очень хорошее.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:44 30-12-2013 | Исправлено: Cheery, 01:45 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
а если создать отдельную таблицу? и в неё вносить все id пользователей и потом проверять текст на присутствие текста?
если текст будет весить пару 1-4мб. задержка на проверку текста на присутствие текста будет долгой?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 01:49 30-12-2013 | Исправлено: Sutar, 01:55 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
задержка на проверку текста на присутствие текста будет долгой?

для этого есть текстовая индексация
но я бы не стал хранить информацию для каждой темы, только если добавлена в закладки.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:57 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
ну вот тема у нас в БД есть, у неё будет на 1 поле больше, и там будут пользователи которые просмотрели тему... а после нового ответа, то поле очищалось... плохо будет?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:09 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
а после нового ответа, то поле очищалось... плохо будет?

что мешает создать отдельную таблицу?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:10 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
что мешает создать отдельную таблицу?

я про это и говорю...
т.е. если у меня таблица
 

Код:
id|name|user|date|text

то будет

Код:
id|name|user|date|text|vuser

 
в vuser - будут номера пользователей, просмотревшие данную тему через |

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:16 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
будут номера пользователей, просмотревшие данную тему через

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:19 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
при новом ответе, очищать vuser
тогда лучше создать отдельно таблицу как в опросе?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:20 30-12-2013 | Исправлено: Sutar, 02:21 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
тогда лучше создать отдельно таблицу как в опросе?

id_темы, vuser
 
если в будущем захочется добавить фичи, это может сделать изменения более удобными, чем цеплять к основной базе.
можно, к примеру, сделать разбиения по группам номеров пользователей, то есть хранить информацию в нескольких записях и работать уже с меньшим размером блоков при проверке и тд и тп

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:26 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
сделать разбиения по группам номеров пользователей

т.е. разбить примерно так
id_темы, id_юзера1-999, id_юзера1000-1999 и т.д.? или как?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:34 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
или как?

 
id, 1, vuser (содержит id из первой тысячи)
id, 2, vuser (содержит id из второй тысячи)
...
 
это просто как пример, наверняка найдется что то, что захочется добавить еще

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:41 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
если в будущем захочется добавить фичи

что?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:49 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
что?

http://www.lingvo-online.ru/en/Translate/en-ru/feature

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:51 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Спасибо за советы
можете помочь подсказать, как сделать проверку в тексте?
 
например:
скрипт, который смог-бы найти в этом тексте какуето часть? например к слову "найти"...

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:54 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:55 30-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
а если текст в массиве?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:56 30-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
а если текст в массиве?

и? это же все равно текст
 
LIKE '%|id|%'

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:57 30-12-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » php, mysql: вопросы по оптимизации


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru