В вашей модели данных преобладают доменные объекты - реальные вещи. Вещи реального мира могут иногда отображаться в отдельные строки в базе данных. Один объект - это один объект - одна реляционная строка - в основном.
Иногда реальные объекты действительно сложны и занимают несколько строк в базе данных. Это «совокупная» проблема. Объекты могут быть агрегатами. Реляционные строки не могут быть легко объединены без нарушения всех нормальных правил формы.
Иногда из-за наследования классов вы будете озадачены тем, как отобразить объект в строке базы данных. Это одна строка на слой иерархии наследования? Или все слои сведены к столбцам в каждой таблице подклассов?
Кроме того, вам нужно иметь коллекции вещей (база данных - это коллекция коллекций вещей).
Эти "коллекции", "наборы записей", "менеджеры" или "объекты доступа к данным" являются посредниками между постоянством (SQL?) И объектами вашего домена. Набор записей строит ваши доменные объекты из любого материала SQL, к которому у него есть доступ. Аналогично, набор записей раскручивает ваши доменные объекты в SQL-компоненты.
ORM - один из способов справиться с этим; платформа ORM предоставляет эти определения классов. Если ORM «перебор», позаимствуйте шаблоны проектирования. Прочтите API iBatis. [Пока вы занимаетесь этим, вы можете обнаружить, что для ORM нет ничего слишком мелкого.]
Короче говоря, оба: "объект набора записей" плюс "один объект на строку данных" - приблизительно.
Если вы чувствуете необходимость свернуть собственные коллекции наборов записей, вы можете попробовать и использовать простую сериализацию для сохранения ваших объектов. Вы будете иметь сложности, сложенные поверх сложностей, пытающихся сериализовать агрегаты и отношения подкласса. Зачем? Объекты имеют прямые ссылки друг на друга. База данных SQL должна эмулировать это с первичными ключами и внешними ключами.