两个型号可以相互归属吗?

时间:2012-04-16 07:16:08

标签: ruby-on-rails ruby-on-rails-3 activerecord associations

我有两个彼此一对一的模型。 A目前有一个B。

最近我遇到很多情况,如果A保持B的id以简化逻辑和提高性能,那么是理想的。不过我想知道:

  1. 这是可能的
  2. 会违反和惯例
  3. 任何想法真的

  4. 更新

    我错了,左外连接不会受到额外外键的好处。

    我唯一能想到的地方就是找到所有没有B的A,我的100000条记录中都需要内部联接。但如果有一个id,那我就可以马上知道哪个A有一个B。

2 个答案:

答案 0 :(得分:0)

我不相信这是可能的 - 你必须决定在哪里保留外键。您是否有意义使用加入关系,并且您的现有模型通过联接是否已经通过?

答案 1 :(得分:0)

另一种选择是将A id放在B上,即非规范化。这将允许您找出没有B的A和A的A,这可能适用于B不经常在A之间移动的报告场景。