В каком виде хранить телефоны пользователей?

Тема в разделе "Базы данных", создана пользователем danneo, 28 янв 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    Пользователь регистрируется и указывает номер телефона (сотовый или стационарный). Нужно их привести к единому виду, чтобы потом можно было рассылать СМС.
    В каком виде сохранять номера при регистрации?
    Как работают операторы и скрипты по рассылке СМС относительно вида номера (если вид со скобками или восьмеркой), что если указан городской номер, а не сотовый?
     
  2. CraZee

    CraZee

    Регистр.:
    11 сен 2006
    Сообщения:
    603
    Симпатии:
    665
    В международном формате.

    99% сервисов по рассылке СМС принимают такой формат, как родной. Без скобок, черточек и прочих элементов. Допускается знак "плюс" впереди номера.

    Например:


    В твоем случае к стандарту должен приводить скрипт. Он должен вырезать тире, звездочки и прочую ересь.
    А при регистрации требовать как минимум страну (если необходимо), код оператора (города, поселка) и сам номер телефона.

    P.S. Определять "мобильность" номера, тоже должен скрипт. Каждому оператору принадлежат какие то телефонные коды. По ним можно определить всю инфу.
     
    danneo и latteo нравится это.
  3. unknown34

    unknown34 Создатель

    Регистр.:
    8 сен 2008
    Сообщения:
    19
    Симпатии:
    2
    только int. ввиду того что таблица будет расти, это будет самое экономное решение. обработку символов - плюсов, тире, скобок и прочего вы должны делать на клиентской стороне, а таблицу пихать уже чистые данные. такой подход я соблюдаю во всем - ибо нужно записывать минимально необходимую информацию, а менять формат (для рассылки или еще чего) вы уже будете по ходу дела.
    прошу заметить, что число, которое вы можете указать в скобках не является ограничением по количеству символов, а используется лишь для правильной индексации и составлении связей.
     
    latteo нравится это.
  4. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    А какой тип лучше подойдет для массива телефонных номеров, например, 5 штук в таком виде:
    На стороне пользователя это делается с помощью js и то, для удобства пользователя. А если какой-нибудь дурак решит исправить форму, убрать js и запихать туда что-то другое? Поэтому нужно дублировать это и на сервере.
     
  5. noonesshadow

    noonesshadow Писатель

    Регистр.:
    31 авг 2012
    Сообщения:
    4
    Симпатии:
    0
    Строковый тип, потому что есть номера телефонов, начинающиеся на 0. Приводить к единому формату правильнее.
     
  6. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    758
    Симпатии:
    326
    Я использую у себя маску на jQuery для ввода телефонов.
    На сервере скрипт вырезает тире, звездочки и прочую ересь, как и рекомендует CraZee. В этом случае в базу все телефоны пишутся в едином формате.
    Вот примеры
    http://ruseller.com/lessons.php?id=424&rub=32
    http://cyberapp.ru/2011/07/06/jquery-maskedinput/
     
  7. unknown34

    unknown34 Создатель

    Регистр.:
    8 сен 2008
    Сообщения:
    19
    Симпатии:
    2
    ну так он сам дурак - js проверка для удобства пользователей, и только.
    на сервере приведение к int и все (ну можно еще количество цифр проверить) - зачем парить мозг два раза.
     
  8. Андрей Шпак

    Андрей Шпак Создатель

    Регистр.:
    11 фев 2013
    Сообщения:
    43
    Симпатии:
    7
    Может что-то путаю, но разве СМС сервисы не только на сотовые? Есль - да, то тип поля int, прекрасно берутся начинающиеся с 7 номера : 79630102101.
    Можно и с "+" - все равно брать его будет модуль работы с СМС шлюзом и там реализовывать правила проверки номера - один фиг при формировании запроса.
     
Статус темы:
Закрыта.