这是关于O/R mapping的问题,本质上与对象序列化差不多,不过,一个是存储在数据库,一个是存储在文件中。
关于O/R mapping,目前业界也没有理想的通用解决方案,http://www.ambysoft.com/persistenceLayer.html 以及Martin Fowler的新书草稿Patterns of Enterprise Application Architecture 有一章讲的就是实现O/R mapping的模式。
如果你是用C++的话,还可以考虑用DTL类库实现,通过引入一个中间类封装具体操作数据库的实现,dtl类库是跨平台的,它让你可以把支持ODBC接口的数据库当成STL容器操作。可以去groups.yahoo.com上注册成为databasetemplatelibrary小组成员,然后到File区下载。