Должен ли я разместить все изображения в одном каталоге? - PullRequest
2 голосов
/ 13 сентября 2010

У меня есть один простой вопрос.Сейчас я работаю над сценарием электронной коммерции и, конечно, пользователи смогут загружать изображения для каждого продукта (до 10 изображений для каждого продукта).Таким образом, мой вопрос заключается в том, должен ли я размещать все изображения в одном каталоге (вероятно, их будут тысячи) или время от времени создавать новые?Не снизит ли это производительность или не вызовет ли в будущем другие проблемы, если я соберу их все вместе?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 13 сентября 2010

Я предлагаю вам разделить их на отдельные каталоги (возможно, / year / month /, где year и month - это год и месяц времени, когда было загружено изображение), или просто введите product_id /).*Проблема заключается в структуре inode, используемой большинством файловых систем Linux.Требуется больше операций, если количество файлов в каталоге увеличилось.

1 голос
/ 13 сентября 2010

Подход к диску

Создайте родительский каталог img с подкаталогом для изображений каждого продукта.

./img
./img/eggs
./img/eggs/eggs1.jpg
./img/eggs/eggs2.jpg
./img/spam
./img/spam/myspamimage.jpg
./img/cheese
...

Таким образом, все ваши изображения будут храниться в единой древовидной иерархии, которая имеет смысл. Если у вас будет очень большое количество изображений (скажем, более 100 000), вы можете сгруппировать изображения в соответствии с датой создания:

./img
./img/2010-08/eggs
./img/2010-08/eggs/eggs1.jpg
./img/2010-08/eggs/eggs2.jpg
./img/2010-09/spam
./img/2010-09/spam/myspamimage.jpg
./img/2010-09/cheese
...

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

Подход к базе данных

Если вам нужно хранить много метаданных на каждом изображении (например, имя пользователя, SKU, описание, авторские права и т. Д.), Вы можете хранить изображения, используя произвольные имена изображений (вероятно, img/img0000001.jpg, /img/img0000002.jpg, ...) и вести запись базы данных, которая отображает продукт на его изображение. Это очень полезно для поиска всех изображений с определенными характеристиками (пользователь, дата создания и т. Д.), Связанных с ними.

0 голосов
/ 13 сентября 2010

Как сказал Адам.

Сделать каталог по умолчанию как Images_Products

Используйте функцию mkdir из php.net для создания каталогов после того, как пользователь загрузил изображение.

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

Пример: $ beer_heineken

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