【发布时间】:2011-05-26 09:43:15
【问题描述】:
真的我的问题是,如果我要在 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)中,这会在性能方面出现问题,因为任何对顶级对象(例如主页)的调用也会返回它们下面的所有项目,假设数据库显着增长?
这个问题可能看起来很主观,为此我提前道歉,但我似乎无法摆脱关系模型,所以在尝试规划任何类型的数据模型之前遇到了真正的问题我将在代码方面进行进一步的工作。
在这个阶段,任何人都可以阐明这一点,我们将不胜感激!提前为任何想法干杯!
【问题讨论】: