银行账户主键的最佳实践是什么?AccountNo 还是 AccountID?

What is the best practice in terms of Bank Acount Primary Key. AccountNo or AccountID?

提问人:Lawrence E Bosumbe 提问时间:4/27/2021 更新时间:4/27/2021 访问量:483

问:

在许多银行帐户应用程序的实现中,帐号始终设置为主键。我在想,如果作为账户持有人的客户决定搬到另一家银行,并且他得到了一个新的帐号,该怎么办。现在,以前的银行决定删除客户账户,因为很长一段时间没有活动。

如果银行使用客户的账户号码作为主键。现在,每个主键都以 1 为种子,并以 1 递增以进行索引。在这种情况下,帐号设置为主键。当 100 名客户离开银行到另一家银行时会发生什么。帐号会保留在银行系统中还是被删除?

如果银行决定保留账户号码,账户号码在银行系统中的可重复使用性如何实现?如果银行决定删除该账户号码。这不会影响银行记录订单的索引和交易历史吗?

我需要更好地理解这个概念,即使用帐号作为主键或帐户 ID 作为主键。最佳实践是什么?

数据库设计 语言不可知, 数据建模 实体关系

评论

1赞 Heinzi 4/27/2021
嗯,一个被称为“自然”主键,另一个被称为“代理”主键。有关其中一种的优点/缺点列表,请参阅 en.wikipedia.org/wiki/Surrogate_key。简而言之,两者都有很好的论据,这取决于您的具体用例,并且在一定程度上是一个品味问题。
3赞 The Impaler 4/27/2021
99% 的时间,我建议避免使用自然键。他们的价值观最终总是会改变。想想身份证(SSN):起初你可能认为它不会改变......但在某些情况下,它确实是你一开始看不到的。使用代理/合成密钥,晚上睡个好觉。
1赞 The Impaler 4/27/2021
"...上一页 银行决定删除客户账户......“——任何机构都不会删除账户。该帐户将被标记为“已关闭”,但不会因法律原因、审计、报告、统计、营销等原因而被删除。
2赞 The Impaler 4/27/2021
"...现在,每个主键都被设定为 1,并且递增 1...“——这是一个常见的误解。没有人真正关心PK的价值;关键特征是它们是独一无二的。时期。
1赞 Wes H 4/28/2021
他们不仅不重复使用帐号,而且对帐号使用足够大的数字,以至于他们有数千万可用,并且通常会故意在帐号之间留出差距。大多数信用卡使用 12 位数字作为帐号。999,999,999,999 个可能的帐户。他们不需要重复使用这些数字。一个信用卡机构有足够大的范围,可以向地球上的每个人发行100+张卡。

答: 暂无答案