有哪些数据库抽象模式?

时间:2016-02-19 07:35:32

标签: database design-patterns orm repository-pattern dao

我试图了解数据库抽象的常见模式。

到目前为止,我发现:

  1. 数据库层
    • 只是一个包含SQL
    • 的单独类
    • 不符合任何其他规则
  2. 数据访问对象(DAO)
    • 如上所述,但有一个表示数据库表的列的传输对象
    • 创建,删除,更新方法将填充的传输对象作为输入
    • find方法可能采用字符串(findByName)或整数(findByAge)之类的输入,但始终返回传输对象列表
  3. 存储库
    • 抽象对象集合
    • 更接近域模型
    • 我需要在这里阅读更多内容
  4. 对象关系映射器
    • 工具,它为我提供了一个映射到后台数据库表的对象
    • 该对象代表表中的一行
    • 对象的属性更改会导致更新
  5. 请不要过分担心我对模式的快速解释。我仍处于理解阶段。

    但是这个列表是完整的还是还有其他缺少的概念?

1 个答案:

答案 0 :(得分:3)

Martin Fowler's "Patterns of Enterprise Application Architecture"是一本很好的书,在社区中受到很好的尊重,它记录了大约50种设计模式,其中大约一半涉及与数据库的交互。它包括Repository,几种DAO(或多或少覆盖您的数据库层和DAO)以及在对象关系映射器中找到的几种完整类型的模式。所以,这是一个很好的起点。

如果不重复模式列表,很难在此答案中总结POEAA的任何内容。幸运的是the list can be found at Fowler's web site。不幸的是,那里的版权符号表明我不应该把它包含在这里。