2009-05-20 12 views

ответ

9

Это помечено как-данных моделирования .. поэтому я буду решать этот аспект.

Номера телефонов, независимо от страны, всегда должны храниться в виде строки без форматирования (eg. "9083429876").

Я вижу людей, пытающихся сохранить их как строку с форматированием .. и это обычно приводит к катастрофе. Где-то кто-то захочет, чтобы эти цифры были отформатированы по-разному. Затем вам нужно написать для них не только функцию форматирования, но и функцию неформатирования. Yowsa.

Я также вижу людей, пытающихся сохранить их как INT64 (или BIGINT). Ну, хорошо, но почему? Никто никогда не отображает неформатированные телефонные номера .. и для его форматирования вы должны превратить его в строку. Некоторые пытаются утверждать, что это для сортировки, но это тоже не летит. Сортировка телефонных номеров НИКОГДА не является полезной операцией. Фильтрация чисел на основе кода области полезна - но возвращает все числа в порядке сортировки по цифрам? Никогда не бывает полезным.

Третий плохой практик, который я вижу, это люди, которые хранят каждый компонент числа в отдельных полях. Опять же, не хорошо. В тот момент, когда вы начинаете вызывать международные номера, эти поля становятся бессмысленными. Например: как вы думаете, Сенегал использует Area Codes?

Итак, как прощальная мысль, я оставляю вас с этим: поскольку каждая страна будет иметь свой собственный набор чисел (символы на самом деле) - следует подумать и позаботиться о том, как можно отформатировать их для отображения.

2

Формат для всех телефонных номеров является:

  • код страны (1-3 цифр)
  • остальные

количество цифр для номера телефона должен быть 15 или меньше.

Смотрите также wikipedia

0

Всегда сохраняйте номер с кодом страны, чтобы он был однозначным и может быть правильно отформатирован для чтения на дисплее.

Смежные вопросы