powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получение вложений к комментариям
9 сообщений из 9, страница 1 из 1
Получение вложений к комментариям
    #38477116
zironix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня следующая проблема, есть две таблицы, таблица комментариев и таблица вложений к ним, связываются они по полю id_comment в таблице вложений и id в таблице комментариев.

Проблема в том, что я не знаю как правильно получать и выводить комментарии сразу с вложениями, интересует именно правильный способ, лучший в плане производительности. Мне на ум приходит лишь следующее:

1) выбирать комментарии объединив пути к вложениям с помощью group_concat, а затем, при выводе, разбивать в explode() по разделителю (подозреваю что может выскочить лимит на длину строки в group_concat, вроде 1024 по умолчанию).

2) при проходе по комментариям делать по запросу для каждого из них и получать вложения.

3) сделать обычный join, появятся дубликаты комментариев, с помощью php брать комментарий из первого, при повторении брать только вложения из остальных.

Все эти способы кажутся мне извращенством, но гугление не дало результатов, если кто подскажет оптимальное решение данной проблемы - буду очень благодарен.
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38477302
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zironix,

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

Если коментариев несколько или строго заданое количесво
(10-20 на страницу) и надо показать вложения сразу(!) для
всех коментариев --- тогда жоинт однозначно.

НО лучше продумать какойнибудь "ленивый" процесс,
когда пользователь видит коментарий и количество вложений
и если захочет, то ткнет еше одну кнопку и получит
вложения только для заданого коментария.
Это хорошо если вложения тяжелые.
AJAX тоже полезно будет для скорости.

при "ленивом" варианте первый запрос будет легким
а по требованию будут отдельные запросы на
вложения для одного коментария.
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38477371
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

если вложений несколько к одному комментарию, то можно избежать дубликатов через GROUP_CONCAT вложений внутри джойна и разверткой их на клиенте обратно в список вложений. Но это если они - легкие.

а можно ещё предложить джойнить ровно одно (первое) вложение и подсчитывать их количество. Тогда можно показывать первое вложение сразу на вывод, и делать кнопарь "ещё 100500 вложений".

а можно... чёт фантазия разыгралась на ночь глядя... :)
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38477373
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

Да, кстати забыл. "лучший способ" - сильно зависит от особенностей данных (в частности размер вложений и их количество к коментарию), их объема, объемности выборки и т.д. вплоть до количества мозгов у конкретного сервера и его нагрузки. :)
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38477803
zironix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Наверное буду использовать вариант с разбором дубликатов на сервере, просто думал что есть возможность получать от MySQL что-то типа:

комментарий
--вложение1
--вложение2

комментарий2
--вложение1

Одним запросом и в удобном для php виде, но видимо я слишком многого хочу.
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38479215
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zironix,

можно и 1 запросом, но непонятно зачем???? Вот почему все хотят все 1-м запросом???
Ну построй нормальную базу, вылижи все отношения, построй индексы, потом 1-м запросом, зачем оно тебе 1-м запросом, если у тебя ни база, ни сервер не оптимизированы и этот 1 запрос у тебя всю базу уложит.
зачем объясни мне это 1 -м запросом,,,,,,,,,,,,,,,,,,,,????????????????????

Модератор: Да, эмоции лучше сдерживать. Или, по крайней мере, выражать их цензурно.
Пост поправлен. Если был искажен смысл - не обижайтесь, в следующий раз пишите сами так, чтобы не пришлось править.
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38479278
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikkiMouseВот почему все хотят все 1-м запросом???Шоб было за... ну вы поняли :)
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38479966
zironix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMousezironix,

можно и 1 запросом, но непонятно зачем???? Вот почему все хотят все 1-м запросом???
Ну построй нормальную базу, вылижи все отношения, построй индексы, потом 1-м запросом, зачем оно тебе 1-м запросом, если у тебя ни база, ни сервер не оптимизированы и этот 1 запрос у тебя всю базу уложит.
зачем объясни мне это 1 -м запросом,,,,,,,,,,,,,,,,,,,,????????????????????


Ну потому, что я не хочу долбить базу просто так количеством запросов, равным количеству комментариев и надеялся что есть какой-то оптимальный способ для данной задачи, который мне не известен, так что такая агрессия мне не понятна.
...
Рейтинг: 0 / 0
Получение вложений к комментариям
    #38480136
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если не невтерпеж то можно сделать
Код: sql
1.
2.
3.
4.
SELECT id as id_comment,comment as label,0 as sort FROM comment
UNION
SELECT id_comment,content ,1 as sort FROM content
ORDER BY id_comment,sort
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получение вложений к комментариям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]