SuperAPI AI 工具集

ecto-patterns

通用与其它

查看项目

更新于 10-16 02:37

技能介绍

用途:当任务涉及 Ecto(包括 how-to 提问)时加载,提供 schema、changeset、校验、查询、预加载、Ecto.Multi、迁移、约束、金额字段等参考。

主要能力与铁律:changeset 用于外部数据,用户/API 输入用 cast/4,内部可信数据用 change/2 或 put_change/3;金额禁用 :float,用 :decimal 或 :integer(分);不用 Rails 式多态关联,改用多个可空外键或独立连接表;查询中始终用 ^ 固定值,字符串插值会导致 SQL 注入;预加载集合而非循环内单个预加载,避免 N+1;竞态条件下约束优于校验,校验给快速反馈、约束给数据库级安全;has_many 用独立查询、belongs_to 用 JOIN,避免行倍增;无 on: 的 from(a in A, b in B) 会产生笛卡尔积;共享数据在 cast_assoc 前先去重,去重仅在单个 changeset 内有效。

用法:提供 schema 模板(binary_id 主键、Ecto.Enum、amount_cents 整数、belongs_to、utc_datetime_usec 时间戳、cast 与 foreign_key_constraint 的 changeset)。cast/put_change/change 的选择、belongs_to 用 JOIN、has_many 用独立查询的预加载策略,以及常见反模式对照。

限制:资料未提供安装命令、收费、平台与效果信息;详细模式见 references 目录下 changesets.md、queries.md、migrations.md、transactions.md。