比如最简单的模型吧,博客有文章 post 和标签 tag,是多对多关系;
数据库 schema 设计中,一般通过 id 的互相引用;
编程语言中,通常表现为一个 Post 对象,有一个 Tags 数组属性,里边是多个 Tag 的内容;
问题就是,不用 ORM 纯手写 SQL 的话,怎么做到一次查询数据库,转换到 Post 对象,并填充 Tags 属性的?
看过一些 ORM 的实际 SQL 日志,一般会是用 LEFT JOIN,但 LEFT JOIN 的话,比如一个 Post 有多个 Tag,那么查询结果中一个含有 N 个 Tag 的 Post 就会重复出现 N 次。
虽然是可以手动编程排除重复 Post 并依次处理 Tag,但是感觉极为蛋疼,复杂度也不低,所以想请教下,这种情况下的常规操作是怎样的?
数据库 schema 设计中,一般通过 id 的互相引用;
编程语言中,通常表现为一个 Post 对象,有一个 Tags 数组属性,里边是多个 Tag 的内容;
问题就是,不用 ORM 纯手写 SQL 的话,怎么做到一次查询数据库,转换到 Post 对象,并填充 Tags 属性的?
看过一些 ORM 的实际 SQL 日志,一般会是用 LEFT JOIN,但 LEFT JOIN 的话,比如一个 Post 有多个 Tag,那么查询结果中一个含有 N 个 Tag 的 Post 就会重复出现 N 次。
虽然是可以手动编程排除重复 Post 并依次处理 Tag,但是感觉极为蛋疼,复杂度也不低,所以想请教下,这种情况下的常规操作是怎样的?