返回全部文章

技术案例推演:Ent M2M Edge 关系建模

3 次阅读GoKratosEnt数据库

技术案例推演:Ent M2M Edge 关系建模

本文是演示内容,不是作者真实项目经历。后续会用真实素材替换。

场景

假设博客系统有 Article 与 Tag 两个实体,一篇文章可以拥有多个标签,一个标签也可以关联多篇文章。Ent schema 需要同时声明双向 edge,并让中间表的外键保持一致。

常见症状

只声明单向 edge 时,查询端可能无法从 Tag 反向预加载文章;迁移生成的关系也可能和业务预期不一致。排查时先检查两侧 edge 的 Ref、字段名和 storage key 是否一致,再检查生成迁移。

修复思路

先用最小 schema 生成迁移,再分别验证 Article -> Tags 和 Tag -> Articles 两条查询路径。业务层只依赖 biz 接口,Ent 查询细节留在 data 层,避免把 ORM 类型泄漏到 service。

经验

M2M 关系的正确性不只取决于表结构,也取决于 ORM 的双向声明和查询预加载方式。把 schema、迁移和两条反向查询放在同一个回归测试里,能尽早发现 edge 配置偏差。

问一问

基于博客已发布的文章回答问题,回答会附上出处。

评论

还没有评论,来写第一条吧。

相关文章