我正在创建银行数据库,并且在这里遇到以下问题。

假设CustomerA拥有一个帐号4444,通过它我可以访问与该顾客有关的所有详细信息,我有一个单独的主键,但是我通常会查询该帐号。

现在,由于某种原因,CustomerA的帐户号从4444更改为5555,并且为新的CustomerB提供了帐户号4444。

我希望我的数据库处理这样的更改,我应该采用哪种方法?

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

但是我不能设计一个查询,其中:


当我使用4444访问CustomerB时,仅显示与B相关的当前详细信息,而不是4444指向的是CustomerA,并且
被5555访问时,CustomerA显示所有详细信息,包括4444正在数据库中存储的详细信息

最佳答案

我将假设这是一种教育活动,而不是真正的银行业务应用程序。

仅用帐号识别客户信息并没有任何意义。客户可以拥有多个帐户,并且帐户可以由多个客户共同持有,因此帐号不太可能是适合客户的密钥。我建议您为此目的创建一个客户编号。

我严重怀疑任何一家银行都不够谨慎,无法将旧帐号分配给新客户。自从上次使用帐号以来,已经有很多年了,但很可能不会发生这种情况,但这可能不是您在数据库设计中需要预期的。同样,我不希望删除或覆盖客户帐号,因为帐号详细信息(包括帐号)通常会保留数年(可能数十年)。

08-25 12:08