Комментарии 4
Скажите, а вам точно была нужна структура Nested Sets? "Квадратичная" природа этой структуры данных автоматически устанавливает ограничение на количество записей в дереве, а раз этих записей мало — с ними проще работать полностью в памяти, а БД использовать только как хранилище.
Если же точно решили его использовать эту структуру — как вообще могло прийти в голову выбирать все записи в память, там их модифицировать, а потом сохранять, да ещё и в два этапа? Ну не подходит Entity Framework для работы с этой структурой данных, надо сырыми SQL-запросами с не работать, это очевидно же. Или можно Linq2Db взять если сырые запросы не нравятся.
+1
Да, соглашусь, на чистом SQL модифицировать дерево было бы проще, и мы бы не столкнулись с проблемами обновления индексов. Возможно это станет очередным этапом оптимизации сервиса, спасибо за комментарий.
0
Очень дорогие получаются операции модификации дерева. Если как вы говорите деревья у вас небольшие, то имхо эффективнее использовать materialized paths
0
Модификации дорогие, но мы сознательно пошли на это, т.к. приходится делать не так часто. Но поиск дочерних элементов и поддерева — то, ради чего все затевалось — все же, на мой взгляд, по скорости будет быстрее при сравнении двух числовых колонок, нежели при поиске элемента в пути.
0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Информация
Блог на Хабре
Разработка firmware на С++ словно игра в бисер. Как перестать динамически выделять память и начать жить
7K 78Конвертируем ODT в XML
967 5Доступ к элементам std::tuple во время исполнения программы
2.4K 5ISTQB. Как проходит сдача экзамена онлайн
7K 8Robot Framework для автоматизации тестирования: ограничения и плюшки
1.9K 13
Выращивание Nested sets в условиях .Net