【发布时间】:2012-04-16 07:16:08
【问题描述】:
我有两个模型,它们是一对一的。 A 目前有一个 B。
最近我遇到很多情况,如果 A 保留 B 的 id 以简化逻辑并提高性能,这是可取的。但是我想知道:
- 这是可能的
- 会违反和约定
- 真的有什么想法
更新
我错了,左外连接不会受益于额外的外键。
我能想到的唯一地方是找到所有没有 B 的 A,我的 100000 多条记录中的每一条都需要一个内连接。但是,如果有一个 id,那么我可以立即知道哪个 A 有一个 B。
【问题讨论】:
-
您目前看到 has_one/belongs_to 设置有哪些性能问题?
-
目前我需要对一个查询进行LEFT OUT JOIN,该查询需要根据B的存在以及许多其他条件具有不同的查询逻辑。
-
请详细说明您的模型以及为什么需要循环引用。
-
另外,显示您尝试执行的查询类型。我确信有一种方法可以在没有多余信息的情况下做到这一点。
-
应该可以实现这一点,但必须非常小心,不要在验证和过滤器等区域出现无限循环。我同意 tsherif 的观点,应该有办法避免这种情况。
标签: ruby-on-rails ruby-on-rails-3 activerecord associations