Nested Set - хранение дерева в БД

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024
  • Исходные материалы к уроку тут: t.me/webformys...
    Одной из популярных и, вместе с тем, достаточно сложных задач является работа с деревьями. Простой пример: необходимо реализовать многоуровневое меню категорий на сайте. Для реализации этой задачи необходим алгоритм хранения деревьев в БД и работы с ними. Одним из таких алгоритмов является Nested Set, который и будет показан в данном уроке.

ความคิดเห็น • 24

  • @АлександрСумский-к2б
    @АлександрСумский-к2б 3 ปีที่แล้ว +3

    Андрей, разберите пожалуйста Nested Set в Laravel 8, в частности конфликт с sluggable

  • @AlexMitinPlus
    @AlexMitinPlus 2 ปีที่แล้ว +1

    Эм... я, кажется, пропустил момент, где рассказывается о том, для чего нужны left, right , как они формируются, что с ними происходит при изменении дерева.
    Еще мне интересно какие запросы идут к базе при вызове метода rebuild(). Самое большое опасение - это то, что будет перестраиваться вся таблица. На таблицах в пару сотен строк это даже незаметно, но на относительно больших - довольно дорогая операция.

  • @RomanRachkov
    @RomanRachkov 4 ปีที่แล้ว +3

    Андрей спасибо, библиотека хорошая. Да вот только интересно было бы именно о том что такое Nested Set именно от вас послушать. Вы мне дали очень большой толчок в развитии, к примеру серия уроков про фреймворк очень отличная, многое стал понимать. Но вот Nested Set'ы ни как не могу осилить так что бы самому нкаписать подобную библиотеку, а раз не могу написать значит не понимаю их((((

    • @matroskin978
      @matroskin978 4 ปีที่แล้ว +2

      Ок, подумаю над серией уроков по написанию собственного решения.

    • @mugen31337
      @mugen31337 4 ปีที่แล้ว

      Для понимания Nested Set у вас должны быть крепкие знания структур данных в программировании. Деревья, графы и т.п. Ну и понимание построения алгоритмов. Без этих знаний, вы не напишете такую библиотеку. Вы любую библиотеку не напишете, так как просто не сможете выстроить грамотную архитектуру, уроетесь в условности и допущения, и на этом все закончится.
      Думаю, что сейчас словлю рофлы, но при наличии базовых щнаний дискретной математики, понимание этой структуры пойдет в гору.
      Про вложенные множества неплохо рассказал Елесеев Дима, в одном из своих курсов по ларавель. Если после него не поймете, значит у вас серьезный пробел в элементарных знаниях.

    • @alexeymaron7515
      @alexeymaron7515 2 ปีที่แล้ว

      @@mugen31337 можно ссылку на Елесеев Дима на урок?
      Возможно этот? th-cam.com/video/j2hvBhxTSuQ/w-d-xo.html&ab_channel=%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9%D0%95%D0%BB%D0%B8%D1%81%D0%B5%D0%B5%D0%B2

    • @mugen31337
      @mugen31337 2 ปีที่แล้ว

      @@alexeymaron7515 та. это он. но по ларавель не в свободном доступе. зайдите на его сайт. его старания по сути копейки стоят.

  • @qwerty-qr3ku
    @qwerty-qr3ku 2 ปีที่แล้ว

    А где дамп базы?

  • @ura8738
    @ura8738 4 ปีที่แล้ว +1

    спасибо.Андрей,доделайте на этом лендинг какой-нибудь

    • @matroskin978
      @matroskin978 4 ปีที่แล้ว +1

      Подумаю)

    • @ura8738
      @ura8738 4 ปีที่แล้ว

      Андрей Кудлай 😁😁тут осталось вывод товаров и корзина

  • @gruzikigor
    @gruzikigor 4 ปีที่แล้ว

    Урок класний, чекаю на інший більш розгорнутіший і детальний урок по цьому методу.

  • @АлександрСумский-к2б
    @АлександрСумский-к2б 3 ปีที่แล้ว

    Андрей, как всегда, блистательно!!!

  • @mister_robot01
    @mister_robot01 4 ปีที่แล้ว

    Как устроенно дерево в Wordpress ? и как часто вы применяли такое решение на практике ? Очень интересно, спасибо за ваш труд)

    • @matroskin978
      @matroskin978 4 ปีที่แล้ว +1

      В плане хранения WordPress использует несколько таблиц и не использует Nested Set, насколько я могу судить по тому, как WP хранит меню. Относительно частоты использования, то на практике я чаще использовал вариант с Adjacency list, но несколько раз использовал и Nested Set, в частности, в последний раз в цикле уроков по Django.

  • @eugenstakhursky9604
    @eugenstakhursky9604 4 ปีที่แล้ว

    Комментарий, лайк)

  • @aigor9534
    @aigor9534 4 ปีที่แล้ว

    Спасибо большое.

    • @matroskin978
      @matroskin978 4 ปีที่แล้ว

      Пожалуйста ;)

  • @АнастасияАнисимова-ф4я
    @АнастасияАнисимова-ф4я 4 ปีที่แล้ว

    Добрый день! Спасибо за урок, то что нужно))

    • @matroskin978
      @matroskin978 4 ปีที่แล้ว

      Пожалуйста)

    • @mugen31337
      @mugen31337 4 ปีที่แล้ว

      кому это нужно и зачем? Не используйте эту библиотеку!

    • @АнастасияАнисимова-ф4я
      @АнастасияАнисимова-ф4я 4 ปีที่แล้ว

      @@mugen31337 А не расскажите, почему?

    • @mugen31337
      @mugen31337 4 ปีที่แล้ว

      @@АнастасияАнисимова-ф4я там выше я прокомментировал, почему