2012-04-16 10 views
1

私はお互いに1対1の2つのモデルを持っています。 Aは現在1つのBを持っています。2つのモデルが互いに属しますか?

最近、ロジックを簡素化し、パフォーマンスを向上させるために、AがBのIDを保持することが望ましい多くのケースが発生します。しかし、場合、私は疑問に思う:これは

  • 可能です

    1. 私が間違っていた本当に

    UPDATE

    を任意の考えを突破し、大会

  • なり、左の外側にはなりに参加します余分な外部キーによって恩恵を受けることはありません。

    私が考えることができる唯一の場所は、Bを持たないすべてのAを見つけることです。私の100000+レコードのそれぞれに内部結合が必要です。しかし、IDがある場合は、AがBを持っていることをすぐに知ることができます。

  • +0

    has_one/belongs_to設定で現時点でどのようなパフォーマンスの問題が発生していますか? – Gareth

    +0

    現在、私はLEFT OUT JOINをBの存在に基づいて、他の多くの条件とともに、異なるクエリロジックを持つ必要があるクエリに対して実行する必要があります。 – lulalala

    +0

    モデルの詳細と循環参照が必要な理由をご記入ください。 – Antoine

    答えて

    0

    私はこれが可能であるとは思わない - あなたは外部キーを保持する場所を決めなければならない。関係を介して参加を使用し、既存の両方のモデルが参加を通じてhas_oneになることは意味がありますか?

    0

    もう1つの方法は、BにA idを入れることです。つまり、非正規化します。これにより、BがないAとBがあるAを把握することができます。これは、BがAの間を頻繁に移動しないシナリオを報告する場合に適しています。

    関連する問題