免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3854 | 回复: 4
打印 上一主题 下一主题

关于Hibernate多对多映射关系问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-04 11:20 |只看该作者 |倒序浏览
问题:
    目前我在数据库中有三张表,分别是:User,Project,Role.我希望通过Hibernate将这三张表的关系比较明确的表达出来,但是我不知道如何在映射文件中表示。请教:)
    这三长表是这样的:一个用户可以有多个项目;一个用户在一个项目中可以有多个角色;一个项目可以包含多个角色;一个角色可以被分配给不同的项目和用户。关系很简单,但是说起来很拗口。

USER_ROLE_PROJECT.jpg (10.11 KB, 下载次数: 46)

USER_ROLE_PROJECT

USER_ROLE_PROJECT

论坛徽章:
0
2 [报告]
发表于 2007-04-04 17:44 |只看该作者
不清楚 用户 和 项目 之间是什么关系?  是多对多关系吗?


那就是: 用户 和 项目 是多对多关系,用户 和 角色 是多对多关系,项目 和 角色 是多对多关系 ?

论坛徽章:
0
3 [报告]
发表于 2007-04-05 16:46 |只看该作者
原帖由 wobushiwo 于 2007-4-4 17:44 发表
不清楚 用户 和 项目 之间是什么关系?  是多对多关系吗?


那就是: 用户 和 项目 是多对多关系,用户 和 角色 是多对多关系,项目 和 角色 是多对多关系 ?


嗯,就是因为这样的三角关系,让我摸不着头脑

论坛徽章:
0
4 [报告]
发表于 2007-04-05 20:31 |只看该作者
这三个表,从图上看,好像一点关系也没有,根本没看出关系,好像都是独立的,然后三张表直接就用一个

u_p_r_table 连接起来,这显然不对,我怀疑数据建模时就有问题

简单的说,我从这个图上,只知道,三个表是一种"组合"关系? 也就是说 u_p_r_table 的三个列为组合主键

而一个表里,只有主键的话,我相信就是有问题的,或是你描述的有问题

[ 本帖最后由 wobushiwo 于 2007-4-5 20:33 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-04-06 13:47 |只看该作者
一点建议:
将项目表分为项目描述+项目属性(内容)两个表。项目描述表中一个项目一条记录,一对多于项目属性(内容)表,属性(内容)表用于存放项目的用户信息(这个需求特定,其实还可以有其他类型的属性),属性表中的userId,roleId多对一于User Role。其实你这个需求中用户本身应该是没角色的,用户的角色都是在项目中体现的。是不是可以理解为角色是项目的角色,而非用户的角色。用户表和角色表也就不用有关联了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP