Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
забегая вперёд скажу что требования с Nested Set не мои. и так, есть некая сущность которую можно комментировать. и комментарии можно комментировать вложеность я так понял не ограничена. табличка в базе выглядит так Код: php 1. 2. 3. 4. 5. 6. 7. 8. во-первых вопрос, что использовать в качестве корня, если первый комментарий то получается так у первого коммента ключи будут 0-1 но и у второго будет 0-1 а вот если комментировать комментарий то у ответа уже будут ключи 1-2, а у корня 0-3. с Nested Set я никогда не работал, поделитесь опытаом как такое решается читал статью всё доходчего, но на практике как-то всё сложнее полчается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 19:27 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Создай элемент root, он и будет корнем, он него уже все комментарии пойдут, т.е. он 0-1, потом 0-3 после первого коммента и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 22:46 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 23:42 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
SharuPoNemnoguСоздай элемент root, он и будет корнем, он него уже все комментарии пойдут, т.е. он 0-1, потом 0-3 после первого коммента и т.д. Просто чтобы я пониал, вот элемент root в таблице для комментариев он как должен выглядеть, как первый комментарий, или как как запись которая имеет какието специальные атрибуты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 23:43 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Nick-name, Если у тебя только 1 корневой элемент, чувак, то левый у него равен 1, а правый - 2. Че тут такого сложного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 23:46 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Когда добавил коммент к корневому - у корневого - 1-4, у коммента - 2-3. По-моему, обезьяна бы после парочки бананов поняла бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 23:48 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
MikkiMouse, а почему 1-4 а не 0-4, и главный вопрос, как апдейтить-то, вот например прокомментировали комментарий то есть было так 0-3(root чем бы он ни был) 1-2 комментарий и тут этот комментарий, то же комментируют, кк обновлять, в цикле, или как то одним запросом? сначала всё проапдейтить потом инсёрт или сначала инсёрт потом апдейтить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 23:55 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
что сделать рутовым узлом в таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2016, 00:25 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Nick-name, Там же в статьях тупо пошагово расписывают как апдейтить, ну как же так? Это все равно как тебе рассказывают, что передачу надо переключать при выжатом сцеплении, а ты в который раз повторяешь: "А почему?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2016, 00:36 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Мимопроходил карочNick-name, Там же в статьях тупо пошагово расписывают как апдейтить, ну как же так? Это все равно как тебе рассказывают, что передачу надо переключать при выжатом сцеплении, а ты в который раз повторяешь: "А почему?" так я и говорю, статья очень понятная, пока до дела не дошло. вот в статье пример там один рутовый узел и от него уже всё разрастается, вот мне в таблице, что создать в качестве этого рутового узла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2016, 00:39 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Nick-name, Скажем так, я не понимаю с чего в таблице дерево начинать ростить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2016, 00:40 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Но самое главное , я не представляю как разделять комментарии и комментарии комментариев на странице, по каким признакам это делается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2016, 01:37 |
|
||
|
помогите решить задачу по Nested Set
|
|||
|---|---|---|---|
|
#18+
Nick-nameНо самое главное , я не представляю как разделять комментарии и комментарии комментариев на странице, по каким признакам это делается? Таблица nested sets для удобства содержит 2 обязательных значения (left и right ключи), 1 вспомогательное (level) и любое количество незначимых значений (сама информация по узлу дерева) Для того, что бы всё было проще, дерево имеет ОДИН корневой элемент, а в него уже начинает вкладываться сама структура дерева). По поводу "почему 1-4, а не 0-3" - а тебе не пофигу откуда начинать нумерацию? да хоть от -100500 (минус сто-пятсот) Как добавлять новые записи? - очень просто! Я надеюсь ты уже понял, что каждый узел дерева резервирует под себя 2 номера (под левый и правый ключ). Соответственно, если ты записываешь новый узел, то его левый и правый ключи будут соответственно на 1 и 2 больше правого ключа предыдущего (или левого ключа родителя, если новый элемент будет первым потомком своего родителя). После этого, все ключи большие или равные по значению левому ключу нового элемента увеличиваются на 2. Вспомогательное значение level потомка записывается как level родителя плюс 1. Удаление происходит в обратном порядке (то есть удаляем элемент, а индексы сдвигаем вниз на 2... это если удаляется 1 элемент разумеется) :) Как разделить комментарии и комментарии комментариев? Если считать, что комментарии к страницам всегда находятся на первом уровне дерева, то отличать их можно без проблем по значению level. Тут и правда нету ничего сложного... на хабре классную статью видел, с неё освоение начинал... но что-т найти не могу её :( P.S. Недавно перешёл на активное использование деревьев типа "Materialized Path". Работа с ними происходит в разы легче. )) И производительность при записи выше (если комментировать собираетесь активно, то это очень важно)... Как ни странно, допёр посредством обычного умозаключения и совершенствования алгоритмов работы nested sets. А сейчас вот прочитал что подход далеко не новый (хотя и раньше это осознавал, но сейчас явно об этом почитал). Только у меня он всё же немного изменённый вышел, рассчитан на неглубокие деревья (с ограниченной вложенностью, под древовидную структуру сайта), но очень простой в использовании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2016, 17:15 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1461209]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 273ms |
| total: | 540ms |

| 0 / 0 |
