На самом деле мой вопрос таков: если бы я использовал вложенную структуру данных в 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() {}
}
Так что, если бы мы начали с этого класса, который был бы способен содержать другие экземпляры того же класса в массиве страниц (или вектор, или коллекцию, или что-то еще), мы могли бы в конечном итоге получить возможность иметь макет сайта как например: -
- Home
- Первый Домашний Ребенок
- Второй домашний ребенок
- Третий Дом Ребенка
Глядя на это, мы видим, что элемент Home будет иметь 3 элемента, хранящихся в его коллекции pages , с First Домашний ребенок предмет в этой коллекции, имеющий еще 3 предмета в собственной страницах коллекции.
Если бы мы затем сохранили эту структуру в DB4O (или любом другом OODB), это вызвало бы проблемы с точки зрения производительности, поскольку любые вызовы объектов верхнего уровня, таких как домашняя страница, также возвращали бы ВСЕ элементы под ними, предполагая, что база данных значительно растет?
Этот вопрос может показаться довольно субъективным, за что я заранее извиняюсь, но я просто не могу вырвать голову из реляционной модели, поэтому у меня возникают реальные проблемы, даже если я пытаюсь спланировать какую-либо модель данных, прежде чем Я прогрессирую в дальнейшей работе в коде.
Любая ясность, которую кто-либо может пролить на это, будет абсолютно признательна на данном этапе! Заранее благодарим за любые мысли!