【发布时间】:2017-10-31 15:35:54
【问题描述】:
所以我正在使用 Laravel 创建一个数据库并为其播种,我遇到了一个问题,它会生成一个电话号码,如下所示:(635) 889-5802 x45134。这会通过超出数据库列的所需长度而导致问题。
所以我的问题是:
- 在实际层面上,为什么要这样做?
x#####的实际用例是什么?我环顾四周,找不到一个好的解释,最好的猜测是内部组织扩展。 - 在构建国际化最终可能很重要的应用程序时,构建对这些内容的支持是否是个好主意?如果是这样,那么扩大列宽对我来说将是一个更好的解决方案。
- 如果这不重要,有没有办法防止这些
x#####在生成时附加到号码上?我觉得这应该是一个选择。如果不是,听起来我最好的选择是自定义提供程序或正则表达式过滤器来删除这些值。
【问题讨论】:
-
是的!那是大型建筑物/办公室的扩展代码。如果您的应用程序将针对企业和组织,则很可能会使用这些代码,并且您将希望获得对这些代码的支持。您还可以将扩展名存储在单独的字段/列中。
-
分机用于内部交换,例如电话系统中的电话系统。
-
就“你应该”而言,我会支持一个足够宽的字段以容纳最长的格式。如果您想解析和使用它们(因此是库),我肯定会read this FAQ(来自 Michael Mior 的回答)关于数字如何高度可变。数据存储很便宜。实际上,我认为它不是可选的原因是你必须考虑它。
-
呜呜呜!这是处理所有用例变得非常烦人的事情之一——常见问题解答清楚地表明这比我想象的要复杂。这是一个知道在哪里划定支持线的真实案例。我的应用程序不会自己进行任何调用,并且大多数用例将仅限于美国 - 我目前的想法是我将尝试为所有美国号码建立适当的支持 - 因为我是其他地方的开源用户欢迎国家/地区提交拉取请求,以在其国家/地区的电话/zip 等系统中添加对怪癖的支持。
标签: php phone-number faker