SuperAPI AI 工具集

SQLAlchemy ORM Expert

编程与开发

查看项目

更新于 10-15 09:22

技能介绍

SQLAlchemy ORM Expert 技能为在客户支持系统中使用 SQLAlchemy 2.0+ 提供全面指导,重点涵盖 ORM 模式、会话管理、查询优化、配合 FastAPI 的异步操作以及 PostgreSQL 集成。内容从基础模型定义延伸到面向高性能支持应用的高级模式。

一、用途 该技能面向客户支持技术赋能场景,帮助开发者构建和维护支持系统的数据层,包括工单、用户、评论、附件及其相互关系的建模与查询。

二、主要能力

  1. 客户支持数据模型:使用带类型提示的声明式映射定义基础模型,包含 User、Ticket、Comment、Tag 等模型,以及 TicketStatus、TicketPriority 枚举。模型涵盖主键、唯一约束、索引、时间戳(server_default、onupdate)、软删除字段和关系定义。
  2. 关系模式:提供一对多(工单上的评论)和多对多(工单上的标签)的实现示例,包括关联表 ticket_tags 的定义。
  3. 会话管理:同步会话使用 create_engine 配合连接池参数(pool_pre_ping、pool_size、max_overflow、echo)和 sessionmaker(autocommit、autoflush、expire_on_commit),并通过 contextmanager 提供 get_db_session。异步会话使用 create_async_engine、async_sessionmaker 和 AsyncSession,配合 asyncpg 驱动,并提供 FastAPI 依赖 get_async_db。
  4. 查询优化与预加载:使用 joinedload 处理单行关系、selectinload 处理集合关系,避免 N+1 查询,示例包括获取工单详情和用户及其工单。
  5. 复杂查询与过滤:提供 search_tickets 示例,支持搜索词(ilike)、状态列表(in_)、优先级、指派人、创建时间、标签等多条件过滤,并返回分页结果与总数。
  6. 聚合分析查询:提供 get_ticket_statistics 示例,按状态、优先级分组计数,计算平均解决时间,以及按指派人统计工单数量和平均解决时间。

三、使用方式 技能以代码示例形式呈现,涵盖模型定义、会话配置、查询构建等。开发者可参照示例在项目中实现相应模式。示例使用 SQLAlchemy 2.0+ 的 select、Mapped、mapped_column、relationship 等 API,异步部分依赖 asyncpg 驱动。

四、适用场景 适用于构建客户支持系统、工单系统等需要 ORM 建模、会话管理、查询优化和异步数据库访问的 Python 后端项目,尤其是使用 FastAPI 和 PostgreSQL 的场景。

五、限制 资料未提供该技能的安装方式、收费模式、平台支持范围或效果保证等信息,暂未提供。