我现在项目中遇到一个数据设计的问题,即:
我有一个文档类(IncDocument),它基本上是一个公共模块类,会在多个其它的类中作为属性出现。如会议类(Conference),论文类(Paper)等,包含了name, size, label, description, url 等属性。
如:现在在Conference中引用到了该类,即: Set documents = new HashSet();
那这个时候IncDocument和Conference的对应关联关系该怎么处理呢?
是一对多吗(一次会议对应多个会议文档)? 如果是,那在IncDocument数据表中应该有一个Conference_ID之类的外键来对应Conference的ID。那如果这样的话,我在Paper类中也会有类似的定义,是否在IncDocument表中再增加一个Paper_ID之类的外键,如果再有更多其它的类似的类中有定义的话,则会有更多的外键存在,肯定不符合IncDocument类公共的要求,况且考虑到项目的扩展性,现在还不知道会有多少类会引入到IncDocument集合,总不至于扩展一次更改一次数据库结构吧。另外,如果用一对多,外键来连接的话,如果某个IncDocument并没有被任何Conference引用,只是一个Paper的文档引用,那在数据库中该IncDocument表的Conference_ID字段怎么处理?由于外键约束,它必须是一个实际存在的Conference的ID。
是多对多吗?如果是,引入中间表,那在IncDocument类中是否应该出现 Set conferences = new HashSet() 之类的定义,相应的还会有 Set papers = new HashSet() 等等其它的集合定义?但这些集合属性不应该是IncDocument的直接属性,而且定义好之后对于以后的扩展很不利。再说同上一对多关联,现在还不知道会有多少这样的集合属性会引用到IncDocument类。
小弟对Hibernate的关联关系研究得不是很多,不明白在这里应该怎么定义它们之间的关系。不知道在Hibernate里面有没有所谓的单向多对多关联,即:引入中间表,这样IncDocument表中不需要定义外键(不同与一对多)。在Conference等表中设置Set documents = new HashSet();之类的集合属性,但是IncDocument中不需要加入Set conferences = new HashSet() 之类的定义。如果有,映射文件中应该怎么配置呢?
希望各位解决过此类问题的高手们给点意见,或者熟悉Hibernate的兄弟们指点一下,给出一个数据表及类关联的设计方案,谢了!!!!!
分享到:
- 2008-03-12 11:29
- 浏览 1065
- 评论(0)
- 论坛回复 / 浏览 (0 / 1305)
- 查看更多
相关推荐
"自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...
关于hibernate映射和查询,使用MySQL,适合初学者的练习
No Hibernate Session bound to thread,没有绑定线程解决办法,找了好久才找到的
hibernate映射枚举类型,hibernate如何映射枚举类型
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...
常用 Hibernate 映射配置说明.doc
用来生成hibernate映射文件.从而实现不需手动写入。。。很实用的东东哦。。
根据实体类生成简单的Hibernate映射文件,对不用Myeclipse的童鞋还是有用
myeclipse自动生成hibernate映射文件
Hibernate映射解析 七种映射关系
Hibernate映射配置实例大全:详细总结了Hibernate的各种映射配置的方法,并逐一举例
用Hibernate映射继承关系
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
Myeclipse生成Hibernate映射文件
hibernate 映射关系 小结
Hibernate映射集合属性List,用于映射集合属性 List Hibernate 自动生成表 不需sql
用MyEclipse自动生成hibernate映射文件和实体类
hibernate 映射关系学习入门 多对多实体映射 源码
内容:hibernate001:通过 XML 配置的基本示例 hibernate002:通过注释配置的基本示例 hibernate003:会话方法练习 hibernate004:组件使用示例 hibernate005:单向关系映射示例 hibernate006:双向关系映射示例 ...