请问 有一个记账的业务请问该怎么设计比较合理?
这个记账业务的内容是 如果用户记账选择某个账户 去扣款, 那么对应的账户也会扣款,
那么现在有个问题, 如果用户选择把这个扣款的账户给删除了
那么基于记账的功能, 那么之前的该账户的记账记录 需要给保留下来,
但是这个时候 如果用户找到这条记账记录 去修改里面的内容, 扣款的账户已经被删除了,因为操作的是两张表,对应的账户被删除了, 在操作记账记录 会被transaction回滚操作。 可是这个时候如果用户需要修改已经被删除的账户,即改成另外的账户 ,但由于之前的账户丢失了系统找不到,会被回滚, 所以这个时候改成另外的账户也不成功, 那么这个时候怎么设计这个方案比较好呢?
方案一, 用户删除的时候,对该账户实现软删除, 即加一个字段让他隐藏起来, 那么用户再去操作这个账户的记录的时候是允许操作的,但是这样有可能会造成很多垃圾账号数据,
方案二, 当用户删除这个账户的时候,对应的记账记录全部删除,那么彻底杜绝了上述问题,但是这肯定是不合理的。
或者还有什么更好的方案吗