Я ищу библиотеку дерева Django и делаю все возможное, чтобы избежать вложенных наборов (их поддерживать кошмарно).
Недостатком модели списка смежности всегда была невозможность получить потомков, не прибегая к множественным запросам. Предложение WITH в Postgres кажется надежным решением этой проблемы.
Кто-нибудь видел какие-либо отчеты о производительности, касающиеся WITH и Nested Set? Я предполагаю, что вложенный набор все равно будет быстрее, но пока они находятся в одном классе сложности, я могу проглотить 2-кратное несоответствие производительности.
Меня интересует Джанго-Трибород. Кто-нибудь знает, реализовали ли они предложение WITH при работе под Postgres?
Кто-нибудь здесь переключился с вложенных наборов в свете предложения WITH?
2 ответа
Вот еще одна ссылка, сравнивающая производительность (но без ссылки на django): http://explainextended.com/2009/09/ 24/adjacency-list-vs-nested-sets-postgresql/
Список смежности и вложенные наборы: PostgreSQL (Quassnoi) Учитывая вышеизложенное и принимая во внимание, что вложенные множества моделью намного сложнее управлять, мы можем сделать вывод, что список смежности модель следует использовать для управления иерархическими данными в PostgreSQL 8.4.
Некоторые мысли относительно возможностей этого подхода здесь:
http://www.davidcramer.net/code/django/6939/scaling-threaded-comments-on-django-at-disqus.html
Вкратце: Дэвиду Крамеру (django-debug-toolbar) очень нравятся рекурсивные запросы и то, как они выполняются для Disqus.
Похожие вопросы
Новые вопросы
django
Django - это серверная платформа веб-приложений с открытым исходным кодом, написанная на Python. Он разработан для сокращения усилий, необходимых для создания сложных веб-сайтов и веб-приложений, управляемых данными, с особым упором на меньшее количество кода, отсутствие избыточности и более явное, чем неявное.