私はソーシャルクリークオブジェクトを持っています。
各social-clique-objectには、friend-objectのリストがあります。
それぞれの友達オブジェクトには、お互いの友達との関係オブジェクト(会ったときのような楽しい事実がいっぱい)があります。
ここで私は立ち往生しています。モデルを適切に定義して、任意のフレンドオブジェクトにクエリを実行して共有リレーションシップオブジェクトをプルアップできるようにするにはどうすればよいですか?
フレンドオブジェクトのリストが大きく増え続けているため、この回答のような双方向モデルでこれが単純に解決されるとは思いません(リンク先のソリューションでは、friend_aとfriend_bなどの2つの異なるモデルが作成されます)。
私の現在のアプローチは、Relationshipオブジェクトを以下に投稿されているもののようにすることでした。リレーションシップオブジェクトの重複を防ぐために、コードにロジックを追加する必要があります...しかしこれは
class Relationship(models.Model):
social_clique = models.ForeignKey( Social_Clique )
friend_0 = models.ManyToManyField( Friend, related_name='friend_0' )
friend_1 = models.ManyToManyField( Friend, related_name='friend_1' )
この問題のORMデザインパターンを見つけるためにグーグルに適切なキーワードが欠けていると感じています。この問題の正しい説明またはこれに対処する方法に関する提案はありますか?