0

私は RBAC に CanCan を使用する Rails アプリに取り組んでおり、役割は 3 つしかありません。今後、さらに 1 つまたは 2 つ追加する予定です。

以前は、m2m リンク テーブルを介してユーザーに結合された、独自のエンティティとして常に役割を持っていました。非常に少数の静的な役割があるため、やり過ぎのように思えます。したがって、ロールごとにユーザーテーブルにブール値の列を追加するだけでよいと考えています。(CanCan の例のように) ビットマスクを使用することもできますが、1 つの列に複数の値を格納することにあまり熱心ではありません。

私の質問は、この状況で何をするのが最善かということです: ビットマスク、複数のブール列、または適切に正規化された m2m 関係?

4

1 に答える 1

1

YAGNI の原則に基づいて操作することで、役割ごとに個別のビット列を使用するという私の決定が促進されます。時間の経過とともにさらにいくつかの列を追加したとしても、m2m リンクテーブルよりも管理が簡単です。ビットマスクはデータの意味をあいまいにするため、ビットマスクを使用しないことに完全に同意します。

Rails、CanCan、またはRBACの経験がないため、SQL側からのみこれに対処しています。

于 2010-11-01T04:55:08.963 に答える