私は RBAC に CanCan を使用する Rails アプリに取り組んでおり、役割は 3 つしかありません。今後、さらに 1 つまたは 2 つ追加する予定です。
以前は、m2m リンク テーブルを介してユーザーに結合された、独自のエンティティとして常に役割を持っていました。非常に少数の静的な役割があるため、やり過ぎのように思えます。したがって、ロールごとにユーザーテーブルにブール値の列を追加するだけでよいと考えています。(CanCan の例のように) ビットマスクを使用することもできますが、1 つの列に複数の値を格納することにあまり熱心ではありません。
私の質問は、この状況で何をするのが最善かということです: ビットマスク、複数のブール列、または適切に正規化された m2m 関係?