Какой способ сохранения имени изображений лучше использовать

Ira Larina

Новичок
Какой способ сохранения имени изображений лучше использовать

Я только разбираюсь в программировании, подскажите какой способ сохранения имени изображения в базу данных лучше использовать?

Допустим что картинок на сайте планируется много (например десятки или сотни тысяч), на сколько я понимаю, есть два самых популярных способа: один, давать картинке имена по порядку приплюсовывая 1, например 001, 002, 003 и тд
а второй, это присвоение времени загрузки картинки (например в юникс формате)

С точки зрения безопасности или удобства или еще каких то соображений, как бы вы посоветовали делать?

Заранее спасибо большое!!!
 

Sigorma

Новичок
Названия допустимы любые, единственное что стоит ограничить максимальное количество файлов(картинок) в одной директории.
Имена картинок не обязательно хранить в БД, все зависит от выбранной архитектуры разрабатываемого вами приложения.
 

zerkms

TDD infected
Команда форума
я бы посоветовал делать с точки зрения задания, которое, кстати, озвучено не было.
 

Ira Larina

Новичок
а как задание может повлиять на способ? можете пример привести?

пока задания никакого нет, есть мысли выбрать один из способов и желание научиться ему

-~{}~ 23.12.09 02:48:

Автор оригинала: Sigorma
Названия допустимы любые, единственное что стоит ограничить максимальное количество файлов(картинок) в одной директории.
Имена картинок не обязательно хранить в БД, все зависит от выбранной архитектуры разрабатываемого вами приложения.
каким количеством стоит ограничить в одной директории?
 

zerkms

TDD infected
Команда форума
а как задание может повлиять на способ? можете пример привести?
можем.
если задание "сделать хоть как лишь бы работало" - тогда любой способ можно выбирать. любой и нас не спрашивать.
если задание - "чтобы нельзя было перебрать файлы по именам подряд и скачать всё качалкой" - тогда решение будет генерацией уникального случайного имени.
если задание - "чтобы имя было как при заливке" - тогда нужно сохранить это имя.

продолжить?

каким количеством стоит ограничить в одной директории?
порядка нескольких тысяч.
 

Фанат

oncle terrible
Команда форума
Ira Larina, назови, пожалуйста, какие сайты, хранящие сотни тысяч картинок ты видел?
 

Alexandre

PHPПенсионер
Ira Larina
третий распространеный способ - это md5(); от чего либо...
например user_id + time()

а второй, это присвоение времени загрузки картинки (например в юникс формате)
здесь есть такой минус: а вдруг два разных пользователя загрузили картинки в одно и тоже время?
каким количеством стоит ограничить в одной директории?
распространенная практика: файлы бьем по директориям, имя директории первые две буквы от имени файла. В этом случае в директории будет 256 файлов (в случае если имя будет производным от md5).
 

zerkms

TDD infected
Команда форума
Alexandre
в этом случае в директории будет 256 субдиректорий, в каждой из которых может быть по 2^24 файлов
 

Ira Larina

Новичок
Автор оригинала: zerkms
можем.
если задание "сделать хоть как лишь бы работало" - тогда любой способ можно выбирать. любой и нас не спрашивать.
если задание - "чтобы нельзя было перебрать файлы по именам подряд и скачать всё качалкой" - тогда решение будет генерацией уникального случайного имени.
если задание - "чтобы имя было как при заливке" - тогда нужно сохранить это имя.

продолжить?


порядка нескольких тысяч.
сохранять имя как при заливке не нужно, надо чтобы любой человек мог загрузить изображение

-~{}~ 23.12.09 10:53:

Автор оригинала: *****
Ira Larina, назови, пожалуйста, какие сайты, хранящие сотни тысяч картинок ты видел?
социальные сети
 

Фанат

oncle terrible
Команда форума
какие конкретно сайты ты видел?
и что узнал о способах хранения картинок там?
 

Ira Larina

Новичок
Автор оригинала: Alexandre
Ira Larina
третий распространеный способ - это md5(); от чего либо...
например user_id + time()

здесь есть такой минус: а вдруг два разных пользователя загрузили картинки в одно и тоже время?
распространенная практика: файлы бьем по директориям, имя директории первые две буквы от имени файла. В этом случае в директории будет 256 файлов (в случае если имя будет производным от md5).
третий распространенный способ, кажется подходит больше всего
 

Alexandre

PHPПенсионер
в этом случае в директории будет 256 субдиректорий, в каждой из которых может быть по 2^24 файлов
что мешает при таком раскладе сделать еще один уровень вложенности??

лично на практике для сайта средней величины одного уровня предостаточно. У нас в соцсети на миллионы пользователей предусмотрено три уровня.
 

Sigorma

Новичок
мне нравится хранить файлы разбитые по директориям вида "/21/12/2012/onotole.jpg" (направление сайта новостной портал), н есть проекты где юзверы сами формируют структура каталогов (пример таких сайтов сайты компаний с каталогом своего оборудования). Каждая из реализаций выбиралась исходя из поставленных перед проектом задач. Примерно как то так. =)
 
Сверху