Hibernate一对多个表

时间:2016-03-09 12:54:12

标签: mysql database hibernate

我试图设计一个系统,为用户提供对象的权限。目前,我有一个数据库架构,其中有角色,每个角色都可以拥有多个“安全对象”的权限。这样的对象可以是传感器,其他用户或我们稍后可能添加的任何新东西。所以我有一个表role_permissions,用于将角色链接到用户,传感器等。用户也可以直接拥有权限,因此还有一个user_permissions表将用户直接链接到用户,传感器等。 现在,引用安全对象的字段不能是外键,因为目标对象可以是不同的类型,因此来自不同的表。

我现在面临的问题是如何让Hibernate使用它。我认为一对多的关系在这里不起作用,因为Hibernate可能不知道要在哪个表中查找。

另一种方法是为系统中的每个安全类型创建role_user_permissions表,role_sensor_permissions表,user_user_permissions talbe,user_sensor_permissions表和新的role_other_type_permissions表+ user_other_permissions表。因此,对于需要拥有权限的每个类型,我需要2个新表来管理权限。 但是现在数据库中充斥着权限表,这些权限表实际上用于完全相同但不同类型的目的。但是,Hibernate很乐意接受这一点,因为通过外键,它总是知道要查看的表以及对象的类型。

有没有人知道解决此问题的最佳做法?

提前致谢, 斯坦

0 个答案:

没有答案