SQL Мобильный телефон - char или int?

1 23
edogs software
На сайте с 15.12.2005
Offline
775
#21
ortegas:
edogs, а смысл индекса KEY, который не в оперативке?

Что Вы подразумеваете под KEY?

Смысл любого индекса в том, что бы нужные данные искались бы без прохода по всей базе данных. Как первые буквы в записной книжке. Даже если Вы не помните сами где какая буква начинается что бы открыть сразу нужную страницу по памяти (не храните в оперативке), все равно индекс на диске (буквы нарисованные на корешках книжки) помогает Вам найти нужного абонента быстрее, чем если бы Вы перелистывали всю книжку.

Если индекс помещается в оперативку - это отлично. Если не помещается - все равно его наличие сильно помогает.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
R
На сайте с 18.12.2009
Offline
92
#22

Бывают такие номера, которые начинаются с нуля, если хранить, например, 10 символов.

Так вот, попробуйте сохранить такой в int.

O
На сайте с 29.05.2008
Offline
195
#23

rerighter, zerofill + substr($phone, strlen($phone) - $countryNumSize). Но это аргумент.

Решил пока использовать VARCHAR + валидация номера при INSERT, учитывая аргумент выше.

Кстати. Какой максимальный размер номера, учитывая countrycode?

Glueon
На сайте с 26.07.2013
Offline
172
#24
ortegas:
rerighter, zerofill + substr($phone, strlen($phone) - $countryNumSize). Но это аргумент.

Решил пока использовать VARCHAR + валидация номера при INSERT, учитывая аргумент выше.

Кстати. Какой максимальный размер номера, учитывая countrycode?

Согласно E.164 это 15 цифр.

---------- Добавлено 14.09.2013 в 01:31 ----------

Если хранить в формате E.164, то проблемы со стартовым 0 отпадают, потому что там его в начале быть не может. По-моему вполне неплохой вариант.

Аргумент относительно неудобства выборки по региону - принимается, но а кто этим пользовался хоть когда? :)

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
dkameleon
На сайте с 09.12.2005
Offline
386
#25
ortegas:
Кстати. Какой максимальный размер номера, учитывая countrycode?

добавочные номера не забудьте учесть :)

Дизайн интерьера (http://balabukha.com/)
doctorpc
На сайте с 12.07.2009
Offline
112
#26

Если для Вас мега важен быстрый поиск по оператору, то можно пойти дальше и сделать отдельное поле operator_id и искать уже по нему.

Этот id можно определять программно каждый раз при вставке/обновлении, или, лучше с помощью триггера (один раз написали его и забыли).

Но, думаю, на маленьких базах в этом нет необходимости.

O
На сайте с 29.05.2008
Offline
195
#27

doctorpc, да нет. Именно для номера телефона поиск вообще не важен. Поиск будет осуществляться по полному совпадению, а так выборка. Поэтому, думал, что INT будет рациональнее использовать, в плане типизации и расхода памяти.

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий