User interface 客户编号、订单号的最佳格式是什么?
一家大型国际公司部署了一个新的web和MOTO(邮购和电话订购)处理系统。除此之外,您的任务是设计订单和客户标识号的格式 你认为最好的格式是什么?请列出任何假设和考虑事项User interface 客户编号、订单号的最佳格式是什么?,user-interface,User Interface,一家大型国际公司部署了一个新的web和MOTO(邮购和电话订购)处理系统。除此之外,您的任务是设计订单和客户标识号的格式 你认为最好的格式是什么?请列出任何假设和考虑事项 接受答案 Michael Haren的答案因得票最多而被选中,但请务必阅读其他答案和评论,因为它们使Michael的答案更完整。选择所有数字或所有字母。如果必须将其混淆,请确保没有不明确的字符(Il1m、O0等) 显示/打印时,请在每3-4个字符中添加空格,但请确保您的系统可以处理不带空格的输入 编辑: 另一个要考虑的事情是
接受答案
Michael Haren的答案因得票最多而被选中,但请务必阅读其他答案和评论,因为它们使Michael的答案更完整。选择所有数字或所有字母。如果必须将其混淆,请确保没有不明确的字符(Il1m、O0等) 显示/打印时,请在每3-4个字符中添加空格,但请确保您的系统可以处理不带空格的输入 编辑:
另一个要考虑的事情是建立一种区分订单、客户等的方法。例如,客户总是从10开始,订单总是从20开始,供应商总是从30开始,等等。 < P>我只会使用数字,因为它是一家国际公司。我会每隔4-6个数字用空格或破折号来分隔它。我也会将格式分开,以便快速识别 例如: 000-00000-00000-可能是客户编号
00000-00000-00000-00000-可以是一个订单号以丹尼尔和迈克尔的问题为基础:如果分开的数字意味着其他东西,那就更好了。例如,我在一家公司工作,其账号如下: xxxx-xxxx-xxxxxxxx
第一组数字代表该地区,第二组数字代表该地区内的市场。一旦你习惯了知道哪些数字是从哪些方面来的,你就可以很容易地知道一个帐户在哪个领域,甚至不必查看客户的帐户。假设订单/客户的创建不是集中的,或者不会总是集中的,请使用GUID 如果订单/客户的创建始终是集中的,则可以使用无符号整数 没有令人信服的理由认为客户编号的订单编号“意味着”任何东西,而且很可能发明的任何分段编号方案都必须在未来进行彻底检查。坚持做一些独特而无意义的事情 编辑:对于MOTO,任何多字符的字母标识符都会在电话中引起问题,所以GUI是正确的。假设有多个分散的MOTO位置,为每个MOTO位置分配一个前缀(a、B、C等,或01、02,…),并为客户和订单ID使用一个整数或大整数,例如01-1是MOTO位置#1的第一个订单。请注意,零填充是不必要的,它对数字施加了隐式数字限制,并要求客户在说出数字时区分六个零和七个零。如果必须使用填充固定长度格式,请将数字分成不超过4或5位的组
附录:订单号和客户号不必是各自表的主键,只需是用于查找的唯一索引列。您可能希望对数据库中的主键使用更简单/更有效的方法。我希望我的订单号遵循以下格式:
ddmmyyyy-####-####
其中######-####在每天开始时重置为零。这使得将订单与下订单日期关联起来非常容易
对于客户ID,我会混合使用大写字母和数字,但正如Michael所说,要避免常见的错误字母(0、o、L、1、5、s)。这将给你30个字符来处理。如果您使用20个字符,这将提供几乎64位的客户ID范围——这对于安全性非常好。确保在生成ID时使用安全的随机数生成器。至于如何显示格式,应如下所示:
####-####-####-####-####
正如Michael再次指出的,确保您的系统能够处理破折号、空格、无空格或无破折号。(它应该在验证之前从输入中删除所有这些字符。)
我希望这有帮助 - 尽可能长地填写号码,但不要再填写。每次我支付水费账单时,我都必须输入20位的客户号码和18位的发票号码。谢天谢地,我的客户编号中的一个破折号将其分为两部分
- 不要依赖前导零。必须计算我的发票号码中有多少个零是非常烦人的。以0000000000 51415432为例。他们的系统不会只识别51415432
- 将数字分组在一起。如果你一定要使用长数字,四位数的数据块应该可以很好地工作