Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по организации комментариев

345
27 мая 2007 года
vadim_k
312 / / 01.08.2006
Привет всем.
Вот такой примитивный вопрос.
Часто на сайтах к каким либо сообщениям существует возможность добавлять комментарии
Вопрос в том как их правильно организовать,создать отдельную таблицу?
Хранить их в той же таблице где сами сообщения , а может в текстовом файле
подскажите пожалуйста...?
8
27 мая 2007 года
mfender
3.5K / / 15.06.2005
Ясный пень, что нужно в отдельную таблицу складывать.
345
27 мая 2007 года
vadim_k
312 / / 01.08.2006
Я также подумал, но тогда после выбора например 10ти сообщений одним запросом, придётся делать десять запросов для выбора комментариев к каждому или нужно сложные вложенные запросы делать, а что быстрее и лучше...?
1.8K
27 мая 2007 года
civ3
68 / / 21.07.2003
читать ман, смотреть примеры...ты ваще не в теме.
337
27 мая 2007 года
shine
719 / / 09.06.2006
Поступлю по-еврейски :) : а зачем тебе выводить на одной странице комментарии сразу к 10-ти объявлениям? На большинстве сайтов объявлений сделано по-другому: краткий список из 10-20 объявлений и уже при просмотре детальной информации по какому-то объявлению показ комментариев. Может тебе стоит так же сделать?
345
27 мая 2007 года
vadim_k
312 / / 01.08.2006
1.Блин вот это и раздражает меня на большенстве сайтов,хочу сделать примерно так у сообщения есть ссылка "смотреть комментарии" нажимаешь и в помощью AJAX подгружаешь комент. и добавление комментариев по аналогии сделать
2.А комментарии сразу ко всем сообщениям выводить не хочу мне нужно лишь их количестов сразу для всех узнать....
337
27 мая 2007 года
shine
719 / / 09.06.2006
Цитата: vadim_k
1.Блин вот это и раздражает меня на большенстве сайтов,хочу сделать примерно так у сообщения есть ссылка "смотреть комментарии" нажимаешь и в помощью AJAX подгружаешь комент. и добавление комментариев по аналогии сделать


Наверное логичнее делать такую кнопку для каждого объявления. Тогда после нажатия будет выполняться только один достаточно простой запрос к БД, Главное не забудь индексы в таблице расставить ;)

Цитата: vadim_k
2.А комментарии сразу ко всем сообщениям выводить не хочу мне нужно лишь их количестов сразу для всех узнать....


Колличество для всех можно будет узнать одним вложенным или отдельным запросом. Я бы делал вложенный.

345
27 мая 2007 года
vadim_k
312 / / 01.08.2006
1.Я и имел ввиду для каждого, я написал ...сообщениЯ...(ну это мелочи)
2.С точки зрения быстроты вложенный запрос не слишком тормозит...?
я только поэтому тему и открыл, чтобы сделать рациональнее и быстрее...
337
27 мая 2007 года
shine
719 / / 09.06.2006
Цитата: vadim_k

2.С точки зрения быстроты вложенный запрос не слишком тормозит...?


Не должен. Вложенный запрос будет очень простенький и сильно sql-сервер не загрузит.

15
27 мая 2007 года
shaelf
2.7K / / 04.05.2005
Прошу прощения, немного не понямаю, для чего делать вложеные запросы для отображениев комментов?
337
27 мая 2007 года
shine
719 / / 09.06.2006
Цитата: shaelf
Прошу прощения, немного не понямаю, для чего делать вложеные запросы для отображениев комментов?


Не для отображения коментов, а для подсчета их кол-ва при показе общего списка.

15
27 мая 2007 года
shaelf
2.7K / / 04.05.2005
2shine А пример такого запроса можно, т.к. я всё равно не пойму(
8
28 мая 2007 года
mfender
3.5K / / 15.06.2005
Цитата: shine
Не для отображения коментов, а для подсчета их кол-ва при показе общего списка.


Я тоже не врублюсь, как можно ещё во вложенном запросе что-то сосчитать? Всё это, обычно, делается с помощью двух запросов:

I. SELECT COUNT(<field_name>) FROM <table_name> WHERE <where_clause>
II. SELECT * FROM <table_name> WHERE <where_clause> LIMIT <limit>

Короче, в первом запросе тупо получаем количество записей, удовлетворяющих условию, во втором - непосредственно некоторое количество записей под это условие. О каких вложенных запросах речь?

345
28 мая 2007 года
vadim_k
312 / / 01.08.2006
Пока спал столько ответов
Постараюсь пояснит вот выводим десять сообщений(или объявлений)
SELECT * FROM <table_name> WHERE <where_clause> LIMIT 0,10;
потом выводим...
Но у каждого сообщения могут быть комментарии, дак вот как сразу узнать у какого сколько, и есть ли вообще ведь не делать же во время вывода каждого сообщени запрос на количество комментариев
(комментарии хранятся в отдельной таблице)
337
28 мая 2007 года
shine
719 / / 09.06.2006
Цитата: shaelf
2shine А пример такого запроса можно, т.к. я всё равно не пойму(


Я имею ввиду что-то типа
SELECT a.*, (SELECT COUNT(c.id) FROM comments AS c WHERE c.adv_id = a.id) AS comments_number FROM advertisements AS a LIMIT 0,10

15
28 мая 2007 года
shaelf
2.7K / / 04.05.2005
Да, я понял когда ложился спать уже). Просто в эти выходные активно отмечали, до сих пор голова квадратная. Теперь по поводу скорости. Тут многое зависит от самих таблиц и типов полей, только одна просьба, не стоит их тут описывать, ща буду (наверное)))))) эксперенсы тебе повышать до левел апа)). Значит так, открываем ман и ищим EXPLAIN, затем понимаем "вот оно, то, что нужно" и в течении 5 минут сами находим оптимальный вариант, усё))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог