2009-07-05 11 views
1

私はソーシャルネットワーキングスタイルのウェブサイトをモデリングしていました。そこでは、人々がコンタクトリストに他の人を持つことができるようになりました。私はこのテーブルをHABTM関係として、これは良いアイデアですか?それとももっと良い方法がありますか?CakePHPの同じテーブルにあるHABTMの関係

答えて

7

です。あなたがしたいのは、ユーザー間の関係を作成するだけであれば、単にHABTMを使うだけです。リレーションシップ自体に関する詳細情報を保存する場合は、それを別のオブジェクトにすることができます。たとえば、2人のユーザーがどのような関係になっているかを格納したいとします。友人?同僚?パター?

この場合、別の関係または連絡先オブジェクトを作成することができます。次に、ユーザーは複数の連絡先を持ち、すべての連絡先は2人のユーザーに所属します。これは基本的に手動でHABTMリレーションシップを作成するのと同じですが、リレーションシップ自体が個別のモデル(連絡先)になっているため、余分な情報を格納できます。

+0

興味深い...私はそれをこのようにしようとします。 – Shiv