#sql #categories
#sql #Категории
Вопрос:
Как вам удается генерировать список с вкладками из CategoryID / ParentCategoryID самым простым способом? Я не эксперт по SQL, но логически это очень сложно для меня..
Можно ли это сделать с помощью 1 или 2 инструкций SQL, может быть, сработает Do / Loop For / Next?
Список должен выглядеть следующим образом:
Категория -Подкатегория —подсубкатегория —Бесконечные подсубкатегории
Категория -и т.д. —и т.д…
Ответ №1:
Прочитайте о том, что называется «Таблицы замыкания». Это может облегчить вам выполнение некоторых задач.
Ответ №2:
Это, безусловно, непростая проблема (если производительность имеет какое-либо значение), поэтому было бы неплохо ознакомиться с некоторыми из решений, которые разбросаны по Интернету.
Для простого (и совсем не подходящего для задач, где важна производительность) вы можете сделать это:
function readChildrenNodes(parentNode) {
newNodes = sql_db.get("SELECT * FROM nodes WHERE parent=" parentNode.id);
parentNode.appendChildren(newNodes);
for node in newNodes
readChildrenNodes(node);
}
Комментарии:
1. parentNode = ParentCategoryID, Node=CategoryID. Легче говорить об узлах, потому что то, что вы описываете, представляет собой древовидную структуру, это математическое соглашение.
2. Знаете ли вы это в VBScript, классическом ASP?
3. Я никогда не использовал эти языки, но вы можете написать мой псевдокод на любом языке, который вы хотите.