【问题标题】:How do you store cell phone numbers in a database?如何将手机号码存储在数据库中?
【发布时间】:2008-11-24 16:32:10
【问题描述】:

随着短信和类似的东西的时代,有什么好方法将电话号码存储在数据库中?

在美国,短信是通过电话号码处理的,但在其他国家/地区,我听说他们使用电子邮件地址,所以我想需要一种方法来区分使用手机号码作为地址的国家/地区。

补充: 例如,美国人可能会使用 432-342-3333 或 1-432-342-3333,而在英国他们可能会使用 +44 800 400000 或者他们甚至可能会忽略 44。44 和 1 会有所不同自动发送短信时。但是,检查每个国家/地区的电话号码可能会很乏味。在这种情况下,您是拆分国家代码还是将其合并为一列并在那里处理?

【问题讨论】:

  • 您是否要存储电话号码?还是短信地址?问题标题似乎很简单,但随后您谈到了通过电子邮件发送 txt。真正的问题是什么?

标签: sms phone-number


【解决方案1】:

我将主要使用一个文本字段或一系列文本字段,即使您使用数字电话号码也是出于以下原因。

  1. 电话号码的取值范围很大,包括分机号码,这可能会导致数字列失去精度。
  2. 在电话号码中丢失精度是相当糟糕的。
  3. 没有合乎逻辑的理由要对电话号码执行数学运算(加法/乘法)。

此外,您可能需要指定如何使用这些数据。如果您正在计划一个自动消息服务,您将需要一系列中继代理来进行广播,因此您不妨添加一个与信息相关的中继相关的标识符。那么您只需要担心中继代理是否可以理解文本字段中的内容。

【讨论】:

  • 虽然我仍将存储为字符串,但您可以使用固定点数消除 1&2(实际上只是 1 点)。
  • @umassthrower 除非您使用 Excel 并处理 csv 文件。但如果你这样做,解决这个问题的方法是“完全停止使用 excel”。
  • 只是我在这篇文章的评论队列中看到的一条值得注意的评论:> 但是应该注意的是,执行任何聚合函数,即存储在数据库中的电话号码的总和,在 CHAR 上要慢得多字段比 INTEGER。因此,强烈建议包含一个您可以用来计算报告的身份列。)谢谢。
  • ...对于所有那些电话号码的总和有意义的应用程序
  • 我同意@umassthrower,没有理由对电话号码进行数学计算,只是我看到用户试图通过编辑插入的评论,我将其复制粘贴为评论而不是编辑所以可以看到他们的意见(即使我碰巧不同意评论)。
【解决方案2】:

通常作为文本,您不需要所有花哨的格式,除非您需要它来解析来自不同国家的数字,否则您无法区分。您以后可以随时添加格式。

不是数字!!!前导零可能有问题。

【讨论】:

  • 当然。去除 IntegerField 的前导零之前让我非常痛苦。
【解决方案3】:

我不知道你是否看过这两个问题,但它们可能对你有一点帮助。

也许明智的做法是存储号码类型(固定电话、手机、传真)和/或可以接收的消息(语音、文本、电子邮件)。请注意,在美国,也可以通过电子邮件向手机发送短信,但我认为这取决于运营商。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 2011-02-27
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2012-03-16
    相关资源
    最近更新 更多