|
| Дата |
|
USD/RUB | 89.7026 | BTC/USD | 69305.3095 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
26.01.2013, 14:57
|
Start Post: Mysql помощь
|
hustle
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
|
Нужно выбрать коменты по 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.
|
|
|
26.01.2013, 21:33
|
#22
|
Ебланнед
Регистрация: 08.01.2013
Сообщений: 53
Бабло: $35450
|
Цитата:
Сообщение от chesser
не согласен, т.к. задача недвусмусленна: обработка/хранение иерархической структуры данных. Цель - найти оптимальное решение. Условия - они не были озвучены до конца, не было сказано о характере запросов и их частотном распределении (чтение/редактирование(удаление)). Также не было предъвлено требований к производительности системы.
Одно лишь правильное проектирование БД не поможет в решении этой задачи обработки иерахических структур данных, т.к. проектирование БД - это часть реализации, не более того. Сам алгоритм стоит НАД реализацией.
Если ты говоришь об изменении самой постановки задачи и ее цели - это уже другой разговор.
Конкретно в данном случае я бы не парился в поисках оптимальных решений и закешировал бы все в объектный кеш, или даже в html статику, если там анонимов много.
|
а для этого он должен был уточнить, что камменты не редактируемые
и что пользователь, после смены каких-то настроек в профиле (ссылки там, фото, ник), никому не интересен и будет неизменно запечатлён в твоём хтмле
сам то тот ещё "фантазёр"
проектирование БД это основа всего, а не "часть"
|
|
|
26.01.2013, 21:35
|
#23
|
Senior Member
Регистрация: 05.01.2008
Сообщений: 1,676
Бабло: $213930
|
Цитата:
Сообщение от Boodda
да все решается гораздо проще, ставим Postgresql пишем тригер на внесение/апдейт коммента, у вышестоящего комента запоминаем ID подчинённых комментов в поле с типом ARRAY, и догоняем это все хранимой процедурой рекурсивного обсчёта при селекте.
|
ну да. mysql часто сосет перед нормальными субд
и кстати вот увлекательное чтиво http://www.codenet.ru/db/other/trees/
Последний раз редактировалось creator123; 26.01.2013 в 21:41.
|
|
|
26.01.2013, 21:51
|
#24
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
вы пишите бред, господа
Цитата:
Сообщение от Boodda
да все решается гораздо проще, ставим Postgresql пишем тригер на внесение/апдейт коммента, у вышестоящего комента запоминаем ID подчинённых комментов в поле с типом ARRAY, и догоняем это все хранимой процедурой рекурсивного обсчёта при селекте.
|
а разве тоже самое нельзя делать в mysql ? - можно.
Тогда уже почему не оракл, или не mssql ?
не пойму, чем твой поинт в сторону выбора другой БД принципиально отличается от обсуждаемых здесь решений. К тому же я пытаюсь объяснить, что проблема не в БД (реализация), а в алгоритме.
Цитата:
Сообщение от creator123
ну да. mysql часто сосет перед нормальными субд
|
не ведись, особенно в обсуждаемом случае
Цитата:
Сообщение от ulitka
проектирование БД это основа всего, а не "часть"
|
это диагноз начинающего инженера-проектировщика, тебя обманули
|
|
|
26.01.2013, 22:08
|
#25
|
Ебланнед
Регистрация: 08.01.2013
Сообщений: 53
Бабло: $35450
|
chesser, тебе корона не жмёт?
|
|
|
26.01.2013, 22:34
|
#26
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Цитата:
Сообщение от ulitka
chesser, тебе корона не жмёт?
|
я привык
если хочешь говорить предметно - давай говорить предметно, а не профанировать в сторону "проектирование БД это основа всего"
|
|
|
26.01.2013, 22:40
|
#27
|
Ебланнед
Регистрация: 08.01.2013
Сообщений: 53
Бабло: $35450
|
Цитата:
Сообщение от chesser
я привык
если хочешь говорить предметно - давай говорить предметно, а не профанировать в сторону "проектирование БД это основа всего"
|
чья бы корова мычала
сними корону и говори нормально, а не "я всё знаю, вы нихуя не знаете"
|
|
|
26.01.2013, 23:26
|
#28
|
Senior Member
Регистрация: 24.04.2007
Адрес: Красноярск
Сообщений: 358
Бабло: $50640
|
Пиздец, нормальные люди делают дела на проверенных решениях, пока вы субд выбираете и проектируете
__________________
PharmCash - Лучшие условия и профит в фарме. Hold-0, Refunds-0, Commission–50%, CPU+500. Google нас любит!
|
|
|
27.01.2013, 00:41
|
#29
|
hustle
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
ТС -->
|
ТС
Left join можно сделать. Но я лучше все таки пару запросов выполню.
|
|
|
27.01.2013, 11:46
|
#30
|
Senior Medved
Регистрация: 15.06.2008
Сообщений: 4,146
Бабло: $22479945
|
chesser, большинству здесь нужно "лиж бы работало", а как оно работает пофиг. Я тоже склоняюсь к такому принципу, ибо если делать всё по уму на другое не останется времени) (Если конечно ты не профильный проггер и это твоя работа а не инструмент для помощи в основной работе)
|
|
|
27.01.2013, 12:22
|
#31
|
Member
Регистрация: 14.11.2007
Сообщений: 35
Бабло: $7940
|
Цитата:
Сообщение от chesser
вы пишите бред, господа
а разве тоже самое нельзя делать в mysql ? - можно.
Тогда уже почему не оракл, или не mssql ?
|
Цитата:
Сообщение от chesser
не пойму, чем твой поинт в сторону выбора другой БД принципиально отличается от обсуждаемых здесь решений. и
|
В MySQL нет типа полей ARRAY. Вот и начинаются танцы с бубном вокруг того как же селектить.
К тому же я считаю довольно маразматично делать более 10 уровней вложенности вообще для комментов, как дерево то будете отображать, со сдвигом вправо ?, и в последнем коменте слова будут в столбик писаться ?
|
|
|
|