телефонных номеров?
числовое с заданной максимальной длиной
decimal(0,11) я использую для мобильных номеров
так это от обычной строки ничем не отличается, тогда обычную строку лучше использовать
да или строка заданной длины ... опять же длина будет зависеть от того в каком формате будут храниться номера ... как ввел пользователь или со стандартизацией
Какие номера будете сохранять?
Я б советовал строкой сохранять
Пользователь может написать "abc" и это сохраниться в виде строки. Глупо конечно, но все же
Валидируй, храни в varchar
а это уже относится к валидации что пользователь вводит
А какой более лучший? Хранить в varchar или int?
зачем вам в бд non digital символы в номере ?
В одном из прошлых проектов поле было string длиной в 20 символов, т.к. номера не только российские были. Числовое не ставили по той причине, что у integer поля не задаётся максимальное значение через миграции Лары, а использовать double с длиной в 20 ну такое себе. Ещё этот плавающий нуль будет мешать. Поэтому использовали строку при том, что записывали в базу только числа, т.е. никаких других символов не было.
Перед этой регуляркой можно проходить: preg_replace('/\D/', '', $phone)
Ещё в integer проблема с нулями в начале потому всегда беру string
У номеров телефонов нет ведущих нулей если только не приводить их к одной длине строки.
Обсуждают сегодня