Hibernate 和数据库的外键关联

本文讨论了一种在项目开发过程中优化数据库设计的方法:通过移除数据库表间的外键约束,并将这部分逻辑转移到业务代码中实现,以此来减少数据库操作错误并提高复杂业务处理的灵活性。
做项目建数据库时,表与表之间的外键约束太多,导致后来数据库操作时经常出错,于是我们决定把数据中的外键都删除,只在业务逻辑上存在引用关系,在数据库中不存在实体的外键。

可是我们的代码都写到一半了呀,domain包下和javaBeandouy都已经写完,从头再来是不可能的。
于是我就将数据库中的外键都在数据库中删除掉,Hibernate的XML文件和javaBean都没有改变,经过不是很完善的测试,发现是可以的。
我想:数据库中的外键在数据库级别保证数据的完整性和一致性,但是Hibernate也在DAO层保证了数据的关联。所以,我将数据库的外键删除,是不影响Hibernate的,但是这样,我想会造成数据库中存在一定冗余的数据,和无效的数据。但是,对于复杂的业务处理,这点数据库牺牲还是有用的。
这样,所有的业务关联是外键约束,都在java代码里处理了,数据库是没有任何外键约束的。

不知道我这样做有没有问题,或者是违反了什么原则,欢迎拍砖。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值