这不是编程问题,我想是逻辑问题或数据库设计问题。
要回答这个问题,您需要了解一些有关银行交易的知识。
基本上,对于您进行的每笔交易(销售、退款、强制销售),如果主机批准该交易,主机就会向您发送一个 RRN(参考检索号),这是一个用于识别该交易的号码。
问题是我不知道主机如何管理这个号码,我的意思是我想这种方法:
RRN 是通过以下方式生成的:
- 交易类型
- RRN
- 会员资格(取决于货币)
- 批号或批号
这四个实体可以在数据库中创建一个 UNIQUE KEY,问题是我如何知道何时必须重置 RRN 值。
我不能限制数据库中的唯一键,因为如果你今天进行交易,我不知道主机是否在不知道的情况下重置了 RRN 值,我可能会在第二天重复 RRN 的数量,我会抛出一个发送违反唯一密钥的错误,但这不是预期的行为,理论上我不必控制 RRN 号码,因为这是主机的工作,但是,我如何在如果我想取消或回滚该事务,请 DB。
如果我想查询一个唯一的交易,我不能有多行。
我唯一想到的是在不进行 UNIQUE 限制的情况下识别这四个实体的事务,但是如果我查询该事务并且我有多个结果,则会抛出一个错误,指出数据已损坏。