1

ProjectUser、およびGroupモデルを使用してアプリに取り組んでいます。プロジェクトには多くのグループがあり、ユーザーはメンバーシップモデルを通じて多くのグループに属しています。2 つの選択肢があります。

  1. プロジェクトが作成されると、デフォルト グループが作成されます。このプロジェクトに参加しているユーザーは、自動的にプロジェクトに追加されます。

  2. ユーザーがプロジェクトのメンバー、およびプロジェクト内のグループになれるように、メンバーシップを多態的にします。

ファイル、ポスト、タスクなどの他のモデルが登場します。

オプション 2 を選択する場合、これらのモデルもポリモーフィックである必要があります。しかし、それは物事を少し単純化します。

オプション 2 を選択する場合、ポリモーフィズムは使用しませんが、状況は少し複雑になります。たとえば、ユーザーのプロジェクトを見つけるということは、ユーザーのグループを照会し、次にそれらのグループに関連付けられたプロジェクトを照会し、プロジェクトが一意であることを確認する必要があることを意味します。

誰かが同様の状況に直面したことがありますか、どちらのアプローチについてもアドバイスや追加の長所と短所はありますか?

私は本当にグループを完全に捨てたいと思っていますが、グループに基づいてコンテンツを分離することは、アクセス許可の要件です。

4

1 に答える 1

0

次の理由から、最良のオプションはデフォルトグループを作成することだと思います:

  1. 次に、明確な構造を使用できます。

    • プロジェクト - 多くのグループがあります
    • グループ -> 多くのユーザーがいるなど、
  2. グループを簡単に管理できる柔軟性があります

  3. コア構造がシンプルであるため、何年にもわたって簡単に拡張できます

  4. ワンステップを自動化することで、ユーザーのワークフローを緩和しています。個人的には、ユーザーがすぐに起動して実行できるようにすることができれば、ユーザーはあなたのシステムを使いやすいと感じるだろうと信じています

于 2013-08-08T23:39:17.437 に答える