1

doctrineを使用してsymfony2でゲスト、会場、イベント、ゲストカテゴリを含むアプリケーションを作成しています。symfony2 のみと 3 週間連絡を取り合って、SQL のすべてのエンティティのスキーマ テーブルを作成し、それぞれの依存関係と crud の間で作成しました。私の問題は、実用的というよりも理論的なものです。

セキュリティ用のバンドルを作成します (本のセキュリティ バンドルまたは FOSUserBundle から)。次に、3 つの役割を設定します。

  • 管理者
  • 主催者
  • ゲスト

各ゲストには独自のプロファイルがあり、各オーガナイザーはゲストに「接続」されます。簡単に言えば、オーガナイザー X はゲスト X-1、X-2 などと通信して表示するだけです。表示することはできません。 Y-1。私がそのような質問をしていることは、あなたにとって非常に単純で面白いように思えるかもしれませんが... 私は独学です:)

問題は、イベントをオーガナイザーとそのゲストに関連付けるにはどうすればよいかということです。私が想像できる最も簡単な方法は、ゲスト、イベント、カテゴリ、イベントごとに一意のトークン (または任意の自己生成コード) を設定し、テーブルに参加することです。

token=vsfv2435r3frwf24t5grf を持つゲスト John がイベント/カテゴリ/会場を持っている場合、イベント、カテゴリ、または会場で同じトークンを見つけて、アクセス許可を割り当てます。

それは論理的ですか、それともばかげているように聞こえますか?

4

2 に答える 2

1

教義関連マッピング (1 対多、多対多など) を確認する必要があります。

http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/association-mapping.html

それらは非常に簡単に設定でき (Symfony でアノテーションを使用するか、yml スキーマ ファイルで行うことができます)、記述しているようなことを簡単に実行できます。詳細については、データベースに関する Symfony のドキュメントを参照してください。

http://symfony.com/doc/current/book/doctrine.html

于 2012-08-10T18:48:28.527 に答える
0

クロス テーブルを作成し、参加/主催するイベントを示すOrganiserことができます。GuestそれぞれGuestに へのクロス テーブルもありますOrganiser。このようにして、オーガナイザーをゲストに簡単に割り当て、それによってフィルター処理できます (ゲストは複数のイベントに参加できると想定しています)。

Doctrine の世界では、次のようになります。

イベント

...

/**
 * @ORM\ManyToMany(targetEntity="Organiser", inversedBy="events")
 */
protected $organisers;

/**
 * @ORM\ManyToMany(targetEntity="Guest", inversedBy="events")
 */
protected $guests;

主催者

...

/**
 * @ORM\ManyToMany(targetEntity="Event", mappedBy="organisers")
 */
protected $events;

/**
 * @ORM\ManyToMany(targetEntity="Guest", mappedBy="organisers")
 */
protected $guests;

ゲスト

...

/**
 * @ORM\ManyToMany(targetEntity="Event", mappedBy="guests")
 */
protected $events;

/**
 * @ORM\ManyToMany(targetEntity="Organiser", inversedBy="guests")
 */
protected $organisers;
于 2012-08-10T19:01:08.380 に答える