一个看似简单的业务需求,求数据库设计思路。
需求:
正常工作流程:
申请人先进行申请,记录一些申请时的信息,再对申请记录进行审核,合格后允许租房,找到房源后进行登记,记录出租房屋的信息。
一些特殊情况说明:
1、一次申请允许租多套房屋,即一条申请记录会对应0-N条出租房屋记录;
2、申请记录审核通过前,申请记录可能会发生变更;
3、在允许租房并记录出租房屋信息后,申请信息的变更可能会导致出租房屋信息的变更,申请信息没有变更时出租房屋信息也可能会发生变更。
4、要保留变更记录
针对这种情况,我的思路是:
因为大多数业务都是针对当前记录进行操作,所以我建了4张表:
申请表:记录当前申请记录;
申请变更表:在每次变更时将原始记录写进来,再更新原始记录;
租房表:记录当前租房记录;
租房变更表:在每次变更时将原始记录写进来,再更新原始记录;
后来发现了一个问题,在申请信息或租房信息发生过几次变更后,只能将申请表与租房表中的记录对应上,也就是只能关联当前记录,两张变
更表中的记录无法相互对应。
针对这种情况,想到的解决方法是在变更任何一个表时都将另一个表进行复制,以得到变更信息时的其它相关信息。
可是又有了新的问题,就是会出现大量的数据冗余,比如:变更申请信息导致了房屋信息的变更,但实际操作中会在变更完申请信息时复制房屋信息,再变更房屋信息时复制申请信息,至此才达到目的,而前面那条变更申请信息时复制房屋信息的记录是没有用的。
这是现在遇到的问题,还在想其它思路,请各位高人针对这个需求设计一下数据库表,程序实现思路。
谢谢!!!