我的程序中有一堆项目都属于特定类别。我只想返回属于该类别的项目。问题是类别可以有父类别。例如,假设有一个类别“Stuff”,其子类别为“Food”,子类别为“Fruit”。我有这些物品,苹果、梨、巧克力和电脑。
如果我想显示所有的水果,很容易使用“WHERE item.category = FRUIT_ID”子句进行数据库查询。但是,如果我想把所有食物都包括在内,我也需要一种方法把水果放进去。
我知道一些数据库,如 Oracle,有递归查询的概念,这可能是正确的解决方案,但我对分层数据没有太多经验,正在寻找一般性建议。假设我对数据库模式有无限的控制,类别树最多只有 5 个类别,我需要它尽可能快。