Проще работать с конечными объектами.
Придумываем логическую структуру, которая будет содержать данные. При этом структура должна быть такой, чтобы ее было удобно использовать несколько раз.
Пример:
1) Есть заказы в системе, создаем класс Order
2) Есть услуги, создаем класс Service
3) Есть базовые услуги - услуги, которые описывают основной смысл, например - Макароны с сыром, это базовая услуга, каждый класс Service имеет указатель либо на номер соответствующей базовой услуги (класса BaseService)
Order хранит номера или указатель на услуги, входящие в заказ, тоесть экземпляры класса Service.
Service хранит номер или указатель на базовую услугу BaseService, которая описывает смысл этого экземпляра класса Service,
В общем, в простом понимании, в классы заворачивают такую структуру, которая часто повторяется. При этом, у каждого класса можно описать методы, необходимые для работы с данной структурой. Например - serialize или deserialize.