web-dev-qa-db-ja.com

電話番号を保存するMySQLデータベース列

MySQLテーブルに電話番号(携帯電話番号とオフィス番号)を保存する最良の方法は何ですか?

ユーザーはMobileNumber(CountryCodeおよびMobileNumber)とOffice Number(CountryCode、AreaCodeおよびPhoneNumber)を持っている場合があります。

私のアプリケーションは、主にインド市場をターゲットとし、他の市場にも成長します。電話番号を格納するためにvarchar列を使用することを好みます。

しかし、オフィス電話用に3列、携帯電話用に2列必要ですか?または、オプションとして市外局番のあるすべての種類の電話番号の3つの列?

同様の質問 here を見ましたが、まだ回答はありません。

1
Prabhat

市外局番がオプションの3列ソリューションをお勧めします。携帯電話番号doに市外局番(米国など)が設定されている国のケースを処理でき、保守と保守がはるかに容易になります。

2

本当に数をその部分に分割する必要がありますか?通常、番号の唯一の用途は、電話をかける人です。だから、私は数のために単一のフィールドを提案します。

モバイルvsオフィスvs自宅vsファックスvs ...-電話番号の表を作成します。明らかに、この問題は1対多です。 (1人から多くの番号)。そのテーブルには、user_id、type ENUM('mobile', ...)、numberの3つの列があります。

さて、数自体について。実行notデフォルトはutf8です。代わりに、

VARCHAR(40) CHARACTER SET ascii

(いいえ、40で十分かどうかはわかりません。)

拡張機能-1-800-123-4567x9876?上手;多分その構文は大丈夫です。

ダッシュ。 お願い、数字を入力するときにダッシュを強制的に削除しないでください。

2
Rick James