Mysql помощь - Форум успешных вебмастеров - GoFuckBiz.com - Страница 3
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB89.7026
BTC/USD69305.3095
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 26.01.2013, 14:57
Start Post: Mysql помощь 
  #21
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Нужно выбрать коменты по ID и ответы на них (PID) и отсортировать по дате добавления главного сообщения.

Есть таблица.
Цитата:
id | message | pid | date
Но еще есть LIMIT 20 OFFSET 100 (постраничный вывод коментов).

Короче должно быть так:
1. Главное сообщение (дата 01.2013)
- комент (дата 12.2012)
- комент (дата 10.2012)
- комент (дата 05.2012)
- ...
2. Главное сообщение (дата 12.2012)
- комент (дата 01.2013)
- комент (дата 11.2012)


Ну и так далее. В таблице они идут все под своим id. Обратите внимание на даты. Выборка идет с LIMIT и OFFSET.

Пример коментов вот тут http://www.drive2.ru/users/mersbrabus/blog/246513/#post
Только мне нужно в обратном порядке (новые сверху).

Последний раз редактировалось Hector; 26.01.2013 в 15:04.
Hector вне форума  
Старый 26.01.2013, 21:33   #22
ulitka
Ебланнед
 
Регистрация: 08.01.2013
Сообщений: 53
Бабло: $35450
По умолчанию

Цитата:
Сообщение от chesser Посмотреть сообщение
не согласен, т.к. задача недвусмусленна: обработка/хранение иерархической структуры данных. Цель - найти оптимальное решение. Условия - они не были озвучены до конца, не было сказано о характере запросов и их частотном распределении (чтение/редактирование(удаление)). Также не было предъвлено требований к производительности системы.
Одно лишь правильное проектирование БД не поможет в решении этой задачи обработки иерахических структур данных, т.к. проектирование БД - это часть реализации, не более того. Сам алгоритм стоит НАД реализацией.
Если ты говоришь об изменении самой постановки задачи и ее цели - это уже другой разговор.

Конкретно в данном случае я бы не парился в поисках оптимальных решений и закешировал бы все в объектный кеш, или даже в html статику, если там анонимов много.
а для этого он должен был уточнить, что камменты не редактируемые
и что пользователь, после смены каких-то настроек в профиле (ссылки там, фото, ник), никому не интересен и будет неизменно запечатлён в твоём хтмле
сам то тот ещё "фантазёр"

проектирование БД это основа всего, а не "часть"
ulitka вне форума  
Старый 26.01.2013, 21:35   #23
creator123
Senior Member
 
Аватар для creator123
 
Регистрация: 05.01.2008
Сообщений: 1,676
Бабло: $213930
По умолчанию

Цитата:
Сообщение от Boodda
да все решается гораздо проще, ставим Postgresql пишем тригер на внесение/апдейт коммента, у вышестоящего комента запоминаем ID подчинённых комментов в поле с типом ARRAY, и догоняем это все хранимой процедурой рекурсивного обсчёта при селекте.
ну да. mysql часто сосет перед нормальными субд

и кстати вот увлекательное чтиво http://www.codenet.ru/db/other/trees/

Последний раз редактировалось creator123; 26.01.2013 в 21:41.
creator123 вне форума  
Старый 26.01.2013, 21:51   #24
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

вы пишите бред, господа

Цитата:
Сообщение от Boodda Посмотреть сообщение
да все решается гораздо проще, ставим Postgresql пишем тригер на внесение/апдейт коммента, у вышестоящего комента запоминаем ID подчинённых комментов в поле с типом ARRAY, и догоняем это все хранимой процедурой рекурсивного обсчёта при селекте.
а разве тоже самое нельзя делать в mysql ? - можно.
Тогда уже почему не оракл, или не mssql ?

не пойму, чем твой поинт в сторону выбора другой БД принципиально отличается от обсуждаемых здесь решений. К тому же я пытаюсь объяснить, что проблема не в БД (реализация), а в алгоритме.

Цитата:
Сообщение от creator123
ну да. mysql часто сосет перед нормальными субд
не ведись, особенно в обсуждаемом случае

Цитата:
Сообщение от ulitka
проектирование БД это основа всего, а не "часть"
это диагноз начинающего инженера-проектировщика, тебя обманули
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 26.01.2013, 22:08   #25
ulitka
Ебланнед
 
Регистрация: 08.01.2013
Сообщений: 53
Бабло: $35450
По умолчанию

chesser, тебе корона не жмёт?
ulitka вне форума  
Старый 26.01.2013, 22:34   #26
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

Цитата:
Сообщение от ulitka Посмотреть сообщение
chesser, тебе корона не жмёт?
я привык
если хочешь говорить предметно - давай говорить предметно, а не профанировать в сторону "проектирование БД это основа всего"
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 26.01.2013, 22:40   #27
ulitka
Ебланнед
 
Регистрация: 08.01.2013
Сообщений: 53
Бабло: $35450
По умолчанию

Цитата:
Сообщение от chesser Посмотреть сообщение
я привык
если хочешь говорить предметно - давай говорить предметно, а не профанировать в сторону "проектирование БД это основа всего"
чья бы корова мычала
сними корону и говори нормально, а не "я всё знаю, вы нихуя не знаете"
ulitka вне форума  
Старый 26.01.2013, 23:26   #28
flo0
Senior Member
 
Аватар для flo0
 
Регистрация: 24.04.2007
Адрес: Красноярск
Сообщений: 358
Бабло: $50640
По умолчанию

Пиздец, нормальные люди делают дела на проверенных решениях, пока вы субд выбираете и проектируете
__________________
PharmCash - Лучшие условия и профит в фарме. Hold-0, Refunds-0, Commission–50%, CPU+500. Google нас любит!
flo0 вне форума  
Старый 27.01.2013, 00:41   #29
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
ТС -->
Отправить сообщение для Hector с помощью Jabber
автор темы ТС По умолчанию

Left join можно сделать. Но я лучше все таки пару запросов выполню.
Hector вне форума  
Старый 27.01.2013, 11:46   #30
dady
Senior Medved
 
Аватар для dady
 
Регистрация: 15.06.2008
Сообщений: 4,146
Бабло: $22479945
По умолчанию

chesser, большинству здесь нужно "лиж бы работало", а как оно работает пофиг. Я тоже склоняюсь к такому принципу, ибо если делать всё по уму на другое не останется времени) (Если конечно ты не профильный проггер и это твоя работа а не инструмент для помощи в основной работе)
__________________
Аппрув США >91% и Европа >90% Сливай фарму на Pharmcash - получай хрустящий кэш! / Спонсор! Докажи, что твоя партнерка №1 / 2019
dady вне форума  
Старый 27.01.2013, 12:22   #31
Boodda
Member
 
Регистрация: 14.11.2007
Сообщений: 35
Бабло: $7940
По умолчанию

Цитата:
Сообщение от chesser Посмотреть сообщение
вы пишите бред, господа

а разве тоже самое нельзя делать в mysql ? - можно.
Тогда уже почему не оракл, или не mssql ?
Цитата:
Сообщение от chesser Посмотреть сообщение
не пойму, чем твой поинт в сторону выбора другой БД принципиально отличается от обсуждаемых здесь решений. и
В MySQL нет типа полей ARRAY. Вот и начинаются танцы с бубном вокруг того как же селектить.

К тому же я считаю довольно маразматично делать более 10 уровней вложенности вообще для комментов, как дерево то будете отображать, со сдвигом вправо ?, и в последнем коменте слова будут в столбик писаться ?
Boodda вне форума