日期:2014-05-20  浏览次数:20600 次

请教一个数据库表的设计问题(多对多)
我正在用hibernate做一个项目,涉及到用户和角色的多对多问题。hibernate中有<Many-To-Mang>或者@ManyToMany这种方式实现多对多,但是我感觉非常不灵活,也许是我不知道怎么弄。。

就拿我这用户和角色说,比如我想记录下某个用户被赋予某个角色的时间,或者授予角色的管理员是谁,这些信息应该记录在关系表中吧。。如果用上面两个方式,用户实体类和角色实体类中的引用都是对方的类型,访问不到我刚提到的授予时间和授予者的信息。还有,如果我想解除一个关系,我是想删除中间表的一条记录,而不是删除用户或者角色表中的记录,这些要求<Many-To-Mang>貌似都达不到啊。。。是不是应该手动将多对多关系分解成多个一对多??求指教~

------解决方案--------------------
表名User是關鍵字。
------解决方案--------------------
感觉没那么复杂呀,用户和角色为联合主键的关系表不就行了吗
------解决方案--------------------
你这样的要设置的比较复杂,建议手动另外建一张表来解决。