真的我的问题是,如果我要在 oodb 中使用嵌套数据结构,我会将类的实例放在数据库中的其他实例中,还是需要某种关系映射。
我对 OODB(面向对象的数据库)感兴趣已经有一年左右的时间了。我本质上是一名网络/应用程序开发人员,一段时间以来,我一直注意到在表示复杂层次结构(如 MS T-SQL 和 MySQL 等关系模型中的网站层次结构)的复杂性和性能方面存在严重限制。
提供一个快速的 java(伪代码)示例:-
类/数据库类型:
public class PageObject{
public String title = "";
public String shortname = "";
public boolean published = false;
public PageObject[] pages = null;
public PageObject() {}
}
因此,如果我们从此类开始,它将能够在 pages 数组(或向量,或集合或其他任何东西)中保存同一类的其他实例,我们最终可能会拥有这样的站点布局:-
- 家
- 第一个家庭孩子
- 1
- 2
- 3
- 第二个家的孩子
- 第三个家的孩子
- 第一个家庭孩子
看看这个,我们可以看到Home项目将有 3 个项目存储在它的pages集合中,而这个集合中的第一个 Home Child项目在它自己的pages集合中还有另外 3 个项目。
如果我们将这个结构存储在 DB4O(或任何其他 OODB)中,这会在性能方面出现问题,因为任何对顶级对象(例如主页)的调用也会返回它们下面的所有项目,假设数据库显着增长?
这个问题可能看起来很主观,为此我提前道歉,但我似乎无法摆脱关系模型,所以在我进入之前甚至试图规划任何类型的数据模型时都遇到了真正的问题进一步的代码工作。
在这个阶段,任何人都可以阐明这一点,我们将不胜感激!提前为任何想法干杯!