3.8Kпросмотров
68.0%от подписчиков
25 августа 2025 г.
📷 ФотоScore: 4.2K
🌳 Ты узнаешь её из тысячи, по ключам, по PK, и только так 🌳 Заключительная рецензия в рамках конкурса «Продолжи мысль» от @systems_education. Очень жизненный пост о миграции номера телефона (НТ) и его последствиях от Юрия Насу. 🍕 Long story short: НТ сменился, а это — первичный ключ (PK) во многих сервисах. Куда-то надо явиться срочно пешком, куда-то позвонить, кто-то сообразит в онлайн-обработку этого кейса, а про какие-то сервисы так и забудешь вообще. Я так долго получал чужие смс-ки, включая коды для банковских операций и историю покупок, так что кейс и частый, и опасный. 🍕 Вот и автор наткнулся на пиццерию, которая совсем никак не умеет менять номер, даже при личном обращении. Послали заводить новый аккаунт. Для всех, кто сейчас ищет работу и заводит пачку новых учёток на работном сервисе, такой сценарий не баг, а фича. Но в большинстве мест мы не пытаемся уйти от идентификации, а наоборот — желаем держать консистентную историю учётной записи. В аккаунте был указан мой Email и моя дата рождения, и я сразу задумался: «Вот оператор связи возьмет и отдаст мой старый номер другому человеку, а он тоже окажется любителем пиццы!» И этот человек залогинится и получит доступ к моим персональным данным, к адресам, на которые я делал заказы. 🍕 А теперь представьте, что ещё могло бы быть привязано к аккаунту — банковские карты, которые иногда работают без подтверждения по смс. Меня поразило здесь, что ведь был второй PK — почта, и она могла бы выручить, но нет, аналитики такого сценария не заложили. Я 2 года проектировал систему идентификации клиентов для кредитного брокера, работал с API Госуслуг, СМЭВом. Мы тоже решили использовать номер телефона как идентификатор клиента. «Почему не СНИЛС?» — спрашивал я. «Его никто не помнит и это будет резать конверсию», — отвечали мне. 🧀 Чувствуете, чем пахнет? Это не дыры в 4 сырах, это дыры в процессах. Никогда, особенно на уровне БД, не закладывайте естественных ключей в качестве идентификаторов. Храните их, ищите по ним, индексируйте, но только не подменяйте user_id или car_id паспортом или серийником. Ну сделайте синтетический uuid, вам жалко что ли? 🧀 Не хотите резать конверсию, чтобы не лишиться премии, а после нас хоть потоп? Предусмотрите любую другую возможность миграции:
• В ручном режиме внутри приложения или по звонку в поддержку при наличии доступа к прежней учётке
• Через отделение для идентификации по документам
• Через KYC верификацию по лицу и документам
• Через привязку аккаунта к внешней системе (даже логин через условный google-account)
• Через дистанционный видеозвонок с поддержкой (делал так с банками, полёт отличный. Смена утерянного НТ прошла за 5 минут) 🪤 Пост поднял очень важную тему на простом примере — помните о том парне без пиццы и квартиры из-за мошеннического кредита каждый раз, как будете выбирать первичный ключ. #продолжи_мысль_SE | Analyst Boost