- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хотелось на уровне бд это сделать.
Например как автоинкремент увеличивая значение предыдущего поля создает уникальное число.
Число не подходит, нужно создавать уникальное поле используя символы. Например как это делает вк, ютуб.
Желательно услышать мысли как это возможно реализовать сразу в бд(mysql) и потом сохранить файл с таким названием на сервере не составит труда.
На php опираясь на дату не подходит.
я делал на uniqid/ каждому файлу присваивается уник значение. при том у меня загружалось картинок 20 подряд в считаные секунды, и каждой уник значение
я делал на uniqid/ каждому файлу присваивается уник значение. при том у меня загружалось картинок 20 подряд в считаные секунды, и каждой уник значение
+1, тоже использую этот метод.
загружает пользователь?
md5((оригинальное название файла + mt_rand(0,10000)));
загружает пользователь?
да, в вашем примере и во всех примерах выше генерируется случайная строка. Вероятность генерации одинаковых полей возможна, насколько мала она не казалось. Файлов очень много и такая ошибка не допустима.
Вероятность генерации одинаковых полей возможна, насколько мала она не казалось. Файлов очень много и такая ошибка не допустима.
как вариант использовать в базе два поля для создания уникального названия
Порядковый номер (автоинкремент) плюс md5
Даже при возможно вероятном повторении md5, порядковый номер всегда уникален - в сочетании будет всегда уникальное значение...
А в чем проблема то? Строите свою таблицу символов, которая будет участвовать в формировании имени файла. Допустим
0123456789abc...z получаете 33-ю систему исчисления. Дальше просто преобразовываете поле с автоинкрементом в эту систему исчисления и получаете уникальное имя файла, притом максимально короткое.
Вероятность генерации одинаковых полей возможна, насколько мала она не казалось. Файлов очень много и такая ошибка не допустима.
Если требуется обеспечить уникальность без проверки существования, то остаются только последовательности - автоинкремент и любые вариации на его базе (например, UUID).
Допустим 0123456789abc...z получаете 33-ю систему исчисления. Дальше просто преобразовываете поле с автоинкрементом в эту систему исчисления и получаете уникальное имя файла, притом максимально короткое.
Я думаю в этом направлении. Только кто этим будет занимается? Если переложить все на php будут проблемы. Ведь нужно узнать у базы последнее значение, получить его инкремент и снова писать в бд название нового. Это не есть хорошо, поскольку в промежутке еще кто-то загрузит файл.
А вот инкремента строк в mysql не нашел..
Интересно, как на ютубе названия генерятся, символов не так много, не боятся что повторятся)