SuperAPI AI 工具集

advanced-alchemy-modeling

编程与开发

查看项目

更新于 10-15 16:48

技能介绍

用途:该技能用于设计 Advanced Alchemy 的 SQLAlchemy 模型,围绕基类选择、混入、唯一记录辅助、关系模式与声明式基类定制展开,帮助在 Litestar 项目中建立一致的数据模型。

主要能力:提供按主键形态与审计需求选择基类的指引,如 BigIntBase、BigIntAuditBase、UUIDBase、UUIDv7Base 及相关变体;按需添加混入,SlugKey 用于 URL slug,审计列用于时间戳,UniqueMixin 用于 get-or-create 语义;要求关系使用显式加载策略(如 selectin 或 joined),避免依赖默认值;用 UniqueMixin 收敛标签、查找表和多对多辅助模型的重复创建逻辑;仅在内置基类不满足既有 schema 或数据库特定需求时才定制声明式基类。

使用方式:每个限界上下文选定一种主键策略并保持一致;让混入各自负责其关注点,不手写重复的 slug 或审计列;使用 UniqueMixin 时同时实现 unique_hash() 与 unique_filter();模型类保持与传输层无关,请求或响应塑形交给服务或框架层。示例模式为从 advanced_alchemy.base 导入 BigIntAuditBase,从 advanced_alchemy.mixins 导入 SlugKey、UniqueMixin,并定义 class Tag(BigIntAuditBase, SlugKey, UniqueMixin),设置 tablename = "tag"。

适用场景:需要统一主键与审计策略、需要 slug 或唯一记录语义、需要明确关系加载策略的模型设计工作。

限制与校验:需确认基类与数据库键及迁移策略匹配;确认关系加载在热点路径上避免明显 N+1;确认 UniqueMixin 条件与实际唯一性保证一致;确认时间戳、slug 与索引符合预期查询模式。相关参考见 https://advanced-alchemy.litestar.dev/latest/usage/modeling.html 与 https://github.com/litestar-org/advanced-alchemy/blob/main/README.md。