2

1つ以上のコマンドオブジェクトをエンティティに割り当てて、ワークフローの一部としてこれらのコマンドを使用できるようにする設計があります。議論のために、アドオン機能をユーザーのアカウントに割り当てるようなもの。

コマンドパターンとこれがどのように適合するかは理解していますが、私の質問は永続性の1つです。コマンドのリストがあり、各ユーザーアカウントが独自のコマンドのリストを持つことができ、議論のために、コマンドに関して重要なのはそのシステムタイプだけであるか、すべて同じプロパティを持っていると仮定しましょう。データレイヤーを実装するときにそれを維持するための最良の方法は何ですか?

私は、accountsテーブルとcommands / featuresテーブルの間の多対多の関係としてそれを行うことを検討していました。後者のテーブルはTPH戦略に従います(つまり、すべてのコマンドが同じテーブルに保持されます)。それが最もクリーンな方法のようですが、他の誰かが別の戦略に従っているのかどうかを確認したかったのでしょうか。

代わりに、同じ機能が追加された2つのアカウントがその機能の異なるインスタンスを持つ、1:多の関係にしますか?それとも、私がまったく考えていないより良い方法はありますか?

4

1 に答える 1

1

TPHの多対多は、私には問題ないように見えます。

さまざまなユーザーにコマンドを添付するという設計上の決定は不思議ですが、承認のためにコマンドを使用しようとしているようです。ロールベースのセキュリティ(ACL)を使用して通常の承認システムを実装する代わりに、許可の目的。その場合は、おそらく内部レベルでの役割ベースのセキュリティと、DBに静的に格納されるのではなく、内部セキュリティに基づいて動的に作成されるUIコマンドを使用します。

于 2011-03-06T05:42:18.903 に答える