【发布时间】:2012-10-06 22:05:10
【问题描述】:
我正在尝试找出我应该在我的数据库中使用什么数据类型来存储一个固定的 8 位数字。
我应该使用char(8),即使它接受其他字符并在应用程序端进行验证,还是有类似number(x) 的东西可以做到?
我在电话号码列中遇到了同样的困境。我应该使用char(x) 还是更合适的?
编辑 - 回答您的问题:
- 第一个固定的 8 位数字最有可能用作主键。它代表我国的社会安全号码。不会对该列进行任何算术运算。我需要保留所有数字(甚至可能是前导零)。虽然,它可能会排序(因为它将是主键)
- 对于电话号码,我打算将其存储为这样的字符串:
12345678901。问题更多的是关于“我如何确保这个char[]不接受字母或其他字符。是否应该在客户端进行此验证?
【问题讨论】:
-
您将如何使用该值?它只是一串数字,比如帐号吗?或者你真的会做任何数学运算吗?你能保证你永远需要更多的字符,或者也使用字母字符吗?等等等等……
-
电话号码使用字符。前导 0 很重要,可以包含 () 和 + 字符。
标签: sql oracle types sqldatatypes