处理银行账户的数据库历史

Handling Database History for Banking Accounts

我正在创建一个银行数据库,但我遇到了以下问题。

假设客户 A 的帐号为 4444,通过此我可以访问与该客户相关的所有详细信息我有一个单独的主键,但我通常查询此帐号。

现在,由于某种原因,客户 A 的帐号从 4444 更改为 5555,新客户 B 的帐号为 4444。

我想让我的数据库处理这样的变化,我应该采用什么方法?

我开发的方法是:为账号分配一个时间戳,这将帮助我有效地查询以找出与当前账号相关的客户名称。

但我无法设计一个查询:

我假设这是一个教育练习,而不是真正的银行应用程序。

单靠账号来识别客户信息,其实意义不大。客户可以拥有多个账户,账户可以由多个客户共同持有,因此帐号不太可能成为客户的合适密钥。我建议您为此创建一个客户编号。

我严重怀疑任何银行会轻率地将旧帐号分配给新客户。自从上次使用帐号以来已经过去了很多年,这可能会发生,但这可能不是您在数据库设计中需要预期的事情。同样,我不希望删除或覆盖客户帐号,因为包括帐号在内的帐户详细信息通常会保存多年(可能几十年)。