0

私は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 を知りたいです。

ありがとう。

4

1 に答える 1

0
あなたの場合、多対多の関係を選択する方が良いようです。したがって、Permission、Role テーブル、およびジャンク テーブル Permission_Role テーブルが作成されます。
このチュートリアルを試してください:


  [1]: http://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example/

データベースから作成していますか?マッピングの簡単な方法を提案できます...
于 2012-10-01T06:27:52.653 に答える