私はHibernateが初めてで、いくつかのサンプルを試しているだけです
いくつかのサンプルを試した後でも、テーブル間の関係を決定する際にまだ混乱しています。
シナリオを検討してください。ロールとパーミッションが次のように割り当てられています
Role Permission
------------------------------------------------------
ROLE_ADMIN = Create, Update, Delete, View
ROLE_MANAGER = Update, View
ROLE_VIEWER = View
このシナリオでは、次のようにテーブルを作成しました。
Role
-----
role_id(PK) role_name
Permission
-----------
permission_id(PK) permission_name
Role_Permission
-----------------
role_permission_id role_id(FK) permission_id(FK)
さて、この場合、1つのRoleが複数の権限を持つことができ、複数の権限が1つのRoleに属することができるので、この数字を考えると1対多の関係だと思います.
Role_Permission
-----------------
role_permission_id role_id(FK) permission_id(FK)
----------------------------------------------------------
1--------------------1---------------1
2--------------------1---------------2
3--------------------1---------------3
4--------------------2---------------1
5--------------------2---------------3
Id 1 を持つロールは、ID が 1、2、3 の多くのアクセス許可にマッピングされます。1、2、3 などの多くのアクセス許可は、ID が 1 の 1 つのロールに属します。
だから私はそれが一対多だと思う
多対多にも該当すると思いますが、この絵を頭の中で考えると、
role_permission_id role_id(FK) permission_id(FK)
----------------------------------------------------------
1--------------------1---------------1
2--------------------1---------------2
3--------------------1---------------3
4--------------------2---------------1
5--------------------2---------------3
ID 1、2 を持つロールは、ID 1、2、3 を持つ多くのアクセス許可にマッピングされます。1、2、3 のような多くのアクセス許可は、ID 1 と 2 を持つ多くのロールに属します。
だから私はそれが多対多だと思います
多対一にも該当すると思いますが、
role_permission_id role_id(FK) permission_id(FK)
----------------------------------------------------------
1--------------------1---------------1
2--------------------1---------------2
3--------------------1---------------3
4--------------------2---------------1
5--------------------2---------------3
ID 1、2 を持つロールは、ID 1 を持つパーミッションにマッピングされます。ID 1 を持つパーミッションは、ID 1 と 2 を持つ多くのロールに属します
だから私はそれが多対一だと思います
マッピングを判断する方法について本当に混乱しています。誰かが私の疑問を解消してください。また、どのような基準でマッピングを決定する必要があるかについて、Thumb Rule を知りたいです。
ありがとう。