今天突然想到一个问题,是这样的,我们在利用hibernate的时候,实体可以映射成数据库表,表也可以导出实体,如果现在有两个实体:Student(学生)与 Classes(班级),当然也就对应两张表,他们的关系是:多对一,我现在的问题是,我们在写实体的时候,把主外键关系建立好跟不建立主外键关系有效率上的问题嘛?
如果建立关系,那么一般在多的一端加入一个外键指向一的一端,利用 建立关系
如果不建立关系,那么直接在Student中加入一个字段,就可以了,
我想知道,建立关系跟不建立关系有没有效率上的影响或者其他方面的影响,或者说建立关系好些还是不建立关系好些?理由是?
一:建立数据库表之间的关系跟你程序的效率之间没有必然的联系;
1、影响查询效率的是many的实体是为主动加载
2、影响执行效率的是实体之间的级联关系。
上面两点也都是完全根据需求自己设定的,所以总体来说不是影响效率的问题
二:建不建立关系也没有好坏之分,也是要看LZ你的数据库表怎么设计符合你的需求了,建立了关系可以根据一个对象得到另外的一个对象,或者操作另外的一个对象,但是这个字段如果只是一个简单的字段能够搞定就没有必要再去建立关系了,实际上LZ所说的问题应该是数据库设计的问题了,hibernate对于这些都有灵活的操作配置