2012-04-11 1 views
0

私はDoctrineを初めて使い、ちょうど素晴らしいものであるエンティティの周りに私の心を得ただけです。アソシエーションマッピングまたはJOIN?

メッセージに関する情報を含む2つのテーブルがあります。 is_read

  • to_user

    Msg_linksは

    • MSG_IDフィールド
    • を持っています。

    Msg_contentは

    • content_key
    • MSG_TEXT
    • from_user
    • TIME_STAMPを持っています。

    私のアプリケーションでメッセージが生成されたとき、1ユーザーから1ユーザーの場合、両方のテーブルにコンテンツが生成され、表示されるとき、Msg_linksのmsg_IDはcontent_keyに相対的です。

    2人のユーザーにメッセージが送信された場合、msg_contentテーブルには1行だけ表示され、msg_linksには2行だけ表示されます。私はそれが理にかなったことを願う

    私のコードがメールを表示するとき、2つのテーブルをリンクする必要があります。私はこれをmysqlのVIEW、または内部結合のいずれかの前に行っています。

    アソシエーションマッピングが正しく理解されていれば、それはむしろ結合のエンティティのようです。どこでも近く?

    関連マッピングを見つけてそれを使用する必要がありますか、またはquerybuilderを使用して結合を行う必要がありますか?

  • 答えて

    0

    (私もCodeIgniter2を使用していることに注意)は、教義を経由して登録しよう。

    $query = $this->doctrine->em->createQuery("SELECT a.firstname, b.lastname FROM ORM\Testing\Firstnames a JOIN a.mylastname b WHERE b.id = $whichFamily"); 
    
    関連する問題