我正在编写一个项目,我需要在C++中实现ORM解决方案的精简版本.我很擅长实现1-n关系.
例如,如果以下是类:
class A
{
...
}
class B
{
...
std::list<A> _a_list;
...
}
Run Code Online (Sandbox Code Playgroud)
我已经提供了加载/保存方法来加载/保存到db.现在,如果我采用B的情况和以下工作流程:
现在,我需要使用类似"b.save()"的更新数据库.那么,保存更改的最佳方法是什么,即确定_a_list的添加,删除和更新.
一种策略是使用枚举来表示记录的“状态”。IE
enum RecordState {
RECORD_UNMODIFIED,
RECORD_NEW,
RECORD_CHANGED,
RECORD_DELETED
};
Run Code Online (Sandbox Code Playgroud)
您将为每个记录提供一个 RecordState(根据情况默认为 RECORD _NEW / RECORD _UNMODIFIED),并且当调用 Save() 时,它将对每个记录执行适当的操作并将其状态重置为 RECORD _UNMODIFIED。删除内容在处理时将从列表中删除。
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |