摘要: 假设我们必须处理对象的存储, 加载, 和查询. 性能和引用完整性的约束, 给接口的实现带来了以下问题:
1. 加载根对象时如何避免加载大半个数据库
2. 存储时如何更新整个对象图
3. 存储时如何高效的更新整个对象图
4. 何时同步对象的内存状态和持久存储状态
5. 如何确保在出错时保持对象内存状态和持久存储状态之间的一致性
6. 如何保证引用的唯一性以避免可能的更新冲突
对性能的精益求精, 又促使人们解决更多的细节问题:
7. N+1查询问题
8. 分离查询模型和存储模型
9. 尽量减少查询语句
这些问题的解决方案又会带来新的问题.
阅读全文