gpt4 book ai didi

存储库或 DAO : read data from multiple tables

转载 作者:行者123 更新时间:2023-12-05 01:17:37 25 4
gpt4 key购买 nike

我们有一个类,其中有方法:

  • 查找:选择 + 多个连接以过滤数据
  • 添加:在多个表中插入
  • 更新:在多个表中更新
  • delete:在多个表中删除
  • 检查:多重选择 + 多重连接以检查某些内容

它是存储库还是 DAO?

最佳答案

TL;DR;
这对我来说更像是存储库;个人。


在纯粹主义者中,Repository 和 DAO 之间存在很大争议。许多开发人员交替使用术语 DAO 和存储库。我个人并不深陷这场辩论。我更愿意专注于我的应用程序需求。

以下是对数据访问层中使用的一些模式的非常粗略的描述:

工作单元:

  • 处理数据库连接和事务。
  • 额外处理缓存、批量查询、跟踪等
  • 请引用 this回答。

存储库:

  • 可以使用 UnitOfWork;并非总是如此。
  • 不是每个表,而是每个聚合根。
  • 返回域对象;不是对象状态(实体/POCO)。
  • 请引用 this回答。另外,this其他几个术语的答案。

DAO(数据访问对象):

  • 紧密绑定(bind)到数据库而不是业务逻辑。
  • 主要是与表格进行 1:1 映射。
  • 每个 Action 都是事务。
  • 返回对象状态(实体/POCO)。

CQRS(命令查询职责分离):

  • 使用与读取 (SELECT) 数据时使用的模型不同的模型来写入(INSERT、UPDATE、DELETE)数据。
  • Command 下涵盖了写操作。
  • 查询包含读取操作。
  • 可以针对特定需求独立优化每一层。

查询对象:

  • 接受查询作为方法参数中的对象。

数据映射器:

  • 将 POCO/Entity 类映射到数据库行,反之亦然。
  • ORM(对象关系映射器)基于此模式。

事件记录:

  • 与实例相关的属性和方法属于同一类。
  • 映射发生在同一个类中。
  • 对单一记录起作用。

关于存储库或 DAO : read data from multiple tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com