Hibernate 和数据库的外键关联
做项目建数据库时,表与表之间的外键约束太多,导致后来数据库操作时经常出错,于是我们决定把数据中的外键都删除,只在业务逻辑上存在引用关系,在数据库中不存在实体的外键。
可是我们的代码都写到一半了呀,domain包下和javaBeandouy都已经写完,从头再来是不可能的。
于是我就将数据库中的外键都在数据库中删除掉,Hibernate的XML文件和javaBean都没有改变,经过不是很完善的测试,发现是可以的。
我想:数据库中的外键在数据库级别保证数据的完整性和一致性,但是Hibernate也在DAO层保证了数据的关联。所以,我将数据库的外键删除,是不影响Hibernate的,但是这样,我想会造成数据库中存在一定冗余的数据,和无效的数据。但是,对于复杂的业务处理,这点数据库牺牲还是有用的。
这样,所有的业务关联是外键约束,都在java代码里处理了,数据库是没有任何外键约束的。
不知道我这样做有没有问题,或者是违反了什么原则,欢迎拍砖。