1

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

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

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

我希望我的数据库能够处理这样的变化,我应该采用什么方法?

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

但我无法设计一个查询:

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

1 回答 1

0

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

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

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

于 2015-07-18T14:22:28.983 回答