【发布时间】:2014-09-03 23:18:03
【问题描述】:
我正在为一个新项目设计数据库,我不确定是否应该使用 INT、CHAR 或 VARCHAR 作为员工的社会安全号码。在我的国家,SSN 由 11 位数字组成。
请注意,我将使用 ID 列作为此表的主键,因此 SSN 不会用作键。
INT 注意事项:不可能在列上错误地存储文本,这很好,但我无法确保插入的值具有正确的位数.
CHAR 考虑事项:我可以确保条目具有正确的位数,但我不能确定这些是否是数字,并且 SSN 的长度将来可能会增加。
VARCHAR 考虑因素:没有其他两个的任何好处,但它是最灵活的一个,例如,如果长度发生变化也不会受到影响。
SSN 是否有标准数据类型?你们都用什么?
【问题讨论】:
-
由于不是每个人都来自美国,您应该添加 SSN 的格式。
-
所以只有0-9的数字?
-
@juergend 是的,只有数字 0-9,11 位数字。
-
您可能要考虑先加密社会安全号码,在这种情况下,char 或 binary 将是最合乎逻辑的。
-
您可能是 + - x 还是 ÷ SSN?
标签: mysql sql database database-design