Приветствую.
Идентификаторы каналов и пользователей телеграм уже очень большие.
Решил сделаю апгрейд/рефакт баз данных.
Хотелось бы убрать id autoncrement, считаю его излишним. Ведь, всё равно у телеграм уникальные id пользователей, каналов и так далее.
Собственно вопрос.
Как правильно сделать структуру сохранения в mysql?
Делать на from.id varchar? Или unique? Я тестировал, показалось, что при unique работает быстрее, чем при varchar.
Неизвестно, ведь потом эти id пользователей, групп и каналов будут огромные, и начнут сыпаться ошибки.
Проблема в том, что в базу пишется значение хорошо, там поля имеют тип bigint. Но php выдаёт ошибку вместо числа. На python такой проблемы нет. Или может есть возможность заставить php работать с большими числами?
🤔🤔🤔
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.
Я храню их в bigint, диапазона хватит надолго:
-9223372036854775808 :: 9223372036854775807
Ну в базе хорошо держится и сохраняется. Но когда скриптом php выводу, он пишет бред какой то типо : 10523E - что-то подобное. Иногда вообще скрипт рушится.
Вот понять не могу. Обычный вывод из таблицы. 🤪🙄
Это экспоненциальный формат, была у меня такая "фишка" - не помню правда где, не смог найти сейчас. Поэтому не подскажу в чем была проблема и как ее решил)))
предложение: выводи не как число, а как строку
(string)$num
Сейчас так и вывожу. Но все равно не покидает мысль, что может пойти не так. Никак нагуглить не могу решение.
Я где-то этот вывод (преобразование) отключил, только не могу вспомнить
Может константами? Ну опять же, они уже выставлены
https://www.php.net/manual/en/reserved.constants.php#constant.php-int-size
Попутно спрошу.
Сейчас у меня id каналов, групп хранится так
channel_id varchar -100454545454555
Получается, я могу поле сделать bigint, убрать знак минус, или вообще - 100
А скриптом тогда выводить так (string)...->channel_id
Быстрее же должно быть, чем с varchar?
по скорости не подскажу - не думаю что прям разницу почувствуете
но хранить можно и в "сыром" виде в bigint, у меня не возникает проблем.
Буду пробовать. Конечно, хочется чтоб меньше было действий, без всяких обрезаний - 100