ユーザーのパーミッションは、ユーザー テーブルの方が適切に表現されていますか?それとも独自のパーミッション テーブルの方が適切に表現されていますか?
ユーザー テーブルのパーミッション ユーザー テーブルにパーミッション
を配置するということは、ユーザー テーブル内のパーミッションごとに列を作成することを意味します。利点は、ユーザーをユーザー権限に関連付ける際に結合が必要ないため、クエリをより高速に実行できることです。欠点は、多くのアクセス許可列を持つと、ユーザー テーブルが乱雑になることです。
多対多の関係で User テーブルに結合された Permission テーブルのアクセス許可
このようにすると、ユーザー テーブルからアクセス許可が明確に分離されますが、ユーザー アクセス許可にアクセスするには 2 つのテーブルを結合する必要があります。データベースへのアクセスは遅くなる可能性がありますが、データベースの設計はすっきりしているように見えます。
多くの権限がある場合は、別のテーブルに権限を保持する方がよいでしょう。この決定を下す際のその他の考慮事項と、さまざまな状況でどちらの設計が優れているか?