ここで 5 つの表を参照できます: http://www.lyblog.net/detail/...
実際にはテーブルがあります:
ユーザーとロールの間には 1 対 1 の対応関係があります。別のテーブルを作成する代わりに、ロール フィールドをユーザー テーブルに追加するだけではどうでしょうか。
これを行うメリットは何ですか?
補足:
ユーザーとロールの関係は 1 対多であると言う人がいますが、なぜ 1 対多に設定する必要があるのか知りたいです。
1対1の関係のほうがやりやすいんじゃないでしょうか?
ここで 5 つの表を参照できます: http://www.lyblog.net/detail/...
実際にはテーブルがあります:
ユーザーとロールの間には 1 対 1 の対応関係があります。別のテーブルを作成する代わりに、ロール フィールドをユーザー テーブルに追加するだけではどうでしょうか。
これを行うメリットは何ですか?
補足:
ユーザーとロールの関係は 1 対多であると言う人がいますが、なぜ 1 対多に設定する必要があるのか知りたいです。
1対1の関係のほうがやりやすいんじゃないでしょうか?
私の理解では、ユーザーは複数の役割を持つことができるということです
こんな感じです:
1 人が複数のロールを持つことができます
1 つのロールを複数の人が使用することもできます
多対多のリレーションシップでは、通常、マッピング用に中間テーブルを構築する必要があります。
redis のような非リレーショナル データベースを使用している場合を除く
1対多ではなく、多対多です。
あなたのプロジェクトには必要ないかもしれませんが、フレームワークとしては、より広範なニーズを考慮する必要があります。多対多テーブルは 1 対 1 テーブルとして使用できます。 many には 1 対 1 が含まれますが、1 対 1 1 対 1 の設計では、必然的に多対多のニーズを満たすことができなくなります。ここに別の関係テーブルが存在することになりますね?
ユーザーには複数の役割があります。
実際には、別のテーブルを作成しないことも可能です。
デカップリング、単一責任モデル
ManytoMany の関係には中間テーブルが必要です。
多対多のニーズを満たすため
私の理解は正確ではないかもしれません。たとえば、いくつかのロール a、b、c が存在します。あなたの理解によれば、ユーザー 1、2、3 が a に対応できます。 、b、cはそれぞれ大丈夫です。別のユーザー 4 が来た場合、そのユーザーが必要とするロールはたまたまロール a とロール b の権限を持っているため、ユーザー 4 は直接ロール a とロール b に属します。ユーザー 4 のニーズを満たすために新しいロールを作成する必要はありません