将电话号码存储为RDBMS上的主键是一个好主意吗?它们对我们所有人几乎都是唯一的。但是我的朋友建议这样做不是一个好主意,原因如下。
您有何见解,请告诉我!。
答案 0 :(得分:1)
将电话号码用作主键的目的是什么,它可以识别一个人吗?如果是这样,那么一个人可以拥有多个电话号码(移动/家庭电话),因此不建议将电话号码用作主键。 同样,您的问题是正确的,如果一个人没有电话号码怎么办。
答案 1 :(得分:1)
通常由于以下原因,我会反对这个想法:
这是个人身份信息,如果您受GDPR约束,建议谨慎使用。一些用户可能会要求您不要使用他们的电话号码。以后可能需要对电话号码的一部分进行散列或掩盖,甚至完全删除它。
即使已验证,值也取决于用户输入。如果您不在验证者的目标国家/地区,有几种服务可以借给您电话号码以进行验证。
如果电话模式包含国家代码,括号或空格,则需要定义该模式。
应该进行验证以防止重复和空值。
总而言之,使用依赖于外部事实的字段不是一个好主意。正如其他人提到的那样,对ID使用自动生成的标识符,对电话号码使用非唯一索引似乎是一种更好的方法。
答案 2 :(得分:1)
电话号码当然可以作为按键,但是这完全取决于您需要识别的内容以及打算如何使用它。没有普遍正确或错误的答案。
选择和设计密钥的三个非常好的标准(但不是绝对规则)是:简单性,稳定性,熟悉性。电话号码简单易懂,可用于多种用途。它们是否足够稳定可能很大程度上取决于环境。例如,您可能要求所有员工提供唯一的电话号码以进行三重身份验证,但偶尔更改该号码可能是可以接受的。