Мне было интересно узнать о следующих двух вариантах, когда один использует не таблицы SQL, а базы данных на основе ORM (пример - при использовании GAE)
Будет ли второй вариант менее эффективным?
Требование:
Есть объект. У объекта есть коллекция похожих предметов. Мне нужно хранить этот объект. Например, скажем, объект является деревом, и у него есть коллекция листьев.
Вариант 1:
Традиционная структура типа SQL:
- Таблица для дерева (с TreeId в качестве
идентификатор строки в таблице.)
- Стол для листьев (где каждый лист
имеет TreeId и показать листья
дерева, я запрашиваю все листья где
TreeId - это идентификатор дерева.)
- Здесь древовидная структура НЕ
есть поле с листьями.
Вариант 2:
ORM / GAE Таблицы:
Используя тот же пример выше,
- У меня есть объект для дерева, где у объекта есть коллекция (Set / List в Java / C ++) листьев.
- Я храню и извлекаю Дерево вместе с листьями (так как листья реализованы как объект Set в дереве)
Мой вопрос: будет ли второй вариант менее эффективным, чем первый?
Если так, то почему? Есть ли другие альтернативы?
Спасибо!