2

シナリオがあります。

私のアプリケーションには多くのユーザーがいて、誰もが独自のユーザーを持っています(Trusted Circle)。Trusted Circle は、親しい友人に似ています。

ここで混乱しています。

ユーザーごとに信頼できるサークルを実装する最良の方法は何ですか。信頼できるサークルのユーザーは、私のアプリのユーザーにも似ています。

ManyToMany 属性を持つフィールドについて聞いたことがありselfます。ユーザーごとにトラスト サークルを維持するためにアプリケーションで使用する価値があります。

可能であれば、他の代替案も提案してください。

4

2 に答える 2

2

古典的なアプローチは次のようになります。

1 user circle can contains n users
1 user may be in n user circles.

これは N:M の関係です。

ただし、これは django 用であるため、私のdjango 設計の提案は次のとおりです。

1:1 relationship to circle:
      1 user has 1 circle   

N:M relationship to users circle:
      1 circle can contains n users
      1 user may be in n circles.

1 対 1 の円と m2m の関係:

class Circle(models.Model):
    owner = models.OneToOneField(User, primary_key=True)
    users = models.ManyToManyField(User)

ユーザーの作成時にユーザーのサークルを作成するには:

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save

def create_circle(sender, **kw):
    user = kw["instance"]
    if kw["created"]:
        c = Circle(user=user)
        c.save()

post_save.connect(create_circle, sender=User)

楽しんで、あなたの信頼できるサークルに私を登録してください ;)

于 2013-03-04T08:40:25.047 に答える