В основном я сосредоточен на операции запроса, а не на объединении или пересечении.
Вот пример.Есть ли база данных, которая может представлять собой подобную структуру?
Пусть говорят, что мы имеем категорию многоуровневую:
КАТЕГОРИЯ TOP-LEVEL:
category1:
- CATEGORY1.1:
- item1
- CATEGORY1.1:
category2:
- CATEGORY2.1:
- элемент2
- CATEGORY2.1:
Здесь пункт [N] - это данные. Категория - это древовидная структура, представляющая категорию, к которой принадлежит элемент.
Теперь предположим, что я хотел бы запросить все данные в категории 1, база данных должна дать мне item1.
Предположим, что я хочу запросить все данные в категории верхнего уровня, база данных должна дать мне item1 и item2.
Это как теория множеств. Поскольку item1 принадлежит CATEGORY1.1, а CATEGORY1.1 принадлежит CATEGORY1. Таким образом, item1 принадлежит CATEGORY1.
Одно из решений - использование материализованных путей: мы помещаем поле в элемент с именем path, значение равно: «, CATEGORY-TOP-LEVEL, CATEGORY1, CATEGORY1.2». Но проблема в том, что это вызовет много операций записи, когда я изменю имя категории или иерархию категории.
Может ли MongoDB поддерживать это? если нет, может ли база данных поддержать это?
P.S. Давайте рассмотрим эффективность выполнения запросов.
Как часто вы собираетесь менять промежуточные категории? –
Является ли количество уровней (3 категории в вашем примере) фиксированным или переменным? –
Установить как? Вся реляционная модель основана на наборе. Это вопрос с подвохом? – duffymo