2011-11-08 14 views
0

私はCakePHPで "One One Belong to One"関係を作る最良の方法を理解しようとしています。不幸にも私はインターネットで私を助けてくれるものは何も見つかりませんでした。PHP/CakePHP:関係HasOneBelongToOne

私はそのように進んでしようとしました:

会社モデル:

var $belongsTo = array(
    'User' => array(
     'className' => 'User', 
     'foreignKey' => 'user_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ) 
); 

Userモデル:

var $hasOne = array(
    'Company' => array(
     'className' => 'Company', 
     //'foreignKey' => 'user_id', 
     'dependent' => true 
    ) 
); 

しかし、まだCakePHPは私が一人のユーザーのための2つの会社を作成することができます。

そして、ここに私のデータベーススキーマ: 会社:ID、名前、...、 ユーザーUSER_ID:ID、名前、...

感謝

+0

ここにあるすべては大丈夫です、あなたの問題はここにはありません、私はどこかのコードだと思います – sukinsan

答えて

3

CakePHPは唯一の次の関係を処理することができます。

  • 一から一
  • 1に、多くの
  • 多くに1
  • 多くRead more here

    あなたがしたい場合は

多くに「一つは、いずれかに属しています」、両方のオブジェクトで hasOne機能を使用します。

0

各ユーザーに1つの会社しかなく、各会社が1人の唯一のユーザーに属している場合は、同じテーブルに置かないでください。

のような:

USER 
Id 
Name 
... 
Company 

申し訳ありませんが、私はここに戻って質問をするが、適切に思えたべきではない場合。

0

データベースでは、会社のテーブルuser_idを一意に設定する必要があります。