2011-07-21 6 views
0

私は正しいタイトルがわかりません。ここに私の問題です:CakePHPモデルは他のモデルに属しています

のようないくつかのモデルがあります:
会社
者(ユーザーと同じではありません)
ユーザーにそれらのいくつかは1を持っている必要があります
など

は、それ以上のファイルが添付されています。

UploadedFileモデルを作成しました。どのようにこれを上記のモデルのいずれかにリンクするには? UploadedFileは、の会社に属していることがあります。 時にはにUploadedFileに属している人

にUploadedFile会社に属している場合、それはのような他の人に属していません。

すべてにUploadedFileユーザーに属している(彼らはそれらをアップロードし、私はそれをアップロードした人を追跡する必要があるため)

んHABTMはここに働きますか?他のより良い方法?

ありがとうございました。

お礼、
トニー。

答えて

1

にUploadedFileは、3つのすべて(ユーザー、会社と個人)にbelogください:それは、常にユーザーに属しているので

var $belongsTo = array(
    'User' => array('className' => 'User','foreignKey' => 'user_id'), 
    'Company' => array('className' => 'Company','foreignKey' => 'company_id'), 
    'Person' => array('className' => 'Person','foreignKey' => 'person_id')); 

、USER_IDは常に値を持つことになります。

次に、company_idが設定されているか、person_idが設定されているかどうかを確認し、そのファイルがどれに属するかを確認します。私はこのように動作するアプリケーションを持っています。それはちょっと面倒ですが、私は他の解決策を見つけることができませんでした。

もう一つの良いアイデアは、PersonとCompanyを1つのテーブルで組み合わせてみることです。

+0

こんにちはマーティン、迅速な返信をありがとうございます。良いアイデアのように聞こえる。私はそれを試みます。私はこれも私が持っている別の同様の問題に使用することができると思います:すべての会社は多くの株主を持つことができますが、株主は別の会社または人になることができます。 –

関連する問題