Хранение изображений

Discussion in 'PHP' started by FindeR, 22 Jan 2011.

  1. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Всем доброго времени суток.
    Есть вопрос по поводу хранения изображений товара интернет-магазина.
    А именно - как это всё структуризовать?

    Изначально было всё в одной папке. Самый простой вариант, считай, мусорка, т.к. от удалённых товаров оставались картинки, одинаковые имена перезаписывались и т.д.
    Да и когда количество позиций за 20 000 перевалило, стало не очень удобно.

    Далее переделал на другую систему - по типам.
    Иконки категорий в одной папке, брендов в другой и т.д.
    Картинки товаров же лежат теперь по пути "images/id подкатегории/name.jpg", имена уникальные.
    Вроде, всё по феншую, но при массовом переносе товаров приходится переносить и кучу картинок из одной папки в другую, что создаёт немалую нагрузку.

    Интересует ваше мнение, как правильно хранить изображения на сервере, не жертвую ни удобностью, ни нагрузкой?
     
  2. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    1. бд
    2. думаю путь с id товара будет интереснее, images/id товара/name.jpg или id товара/images/name.jpg

    Еще при большом количестве изображений используются специальные файловые систему как xfs, так же картинки чаще не удаляют для избежания форматирования данных на диске
     
  3. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    БД - естесственно. Как без неё...

    id товара? И будет 30к папок лежать?
    По поводу xfs - скорее, к хостеру вопрос уже.
     
  4. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Заливай на сторонние ресурсы. Например, пикаса.
     
  5. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    .::f-duck::., а бэкапы БД на народе хранить?
     
  6. necroleptick

    necroleptick Member

    Joined:
    3 Jan 2011
    Messages:
    105
    Likes Received:
    11
    Reputations:
    0
    /images/<id изображения>.jpg мне что-то кажется что нужно делать так и для изображений завести таблицу

    images
    id|product_id|name
     
  7. necroleptick

    necroleptick Member

    Joined:
    3 Jan 2011
    Messages:
    105
    Likes Received:
    11
    Reputations:
    0
    30.000 папок, это не предел вот когда их тысяч 100 будет...
     
  8. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    можно изображения хранить на файловом серваке, а в бд сделать таблицы с категориями, в них внешние ключи другой таблицы, в которой будет id, имя и ссылка на изображение на серваке
     
  9. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Тогда уж по названию товара. Так и было, по сути. Я и ушёл от того, чтобы в одной папке хранить всё.

    В общем-то, особой разницы не вижу, 30 000, 100 000 папок. В любом случае не особо это правильно, как мне кажется.

    SHiNiGaMi, структура БД, по сути, такая и есть. Место для хранения есть. Больше интересует вопрос структуры этого всего.

    Ещё была идея создавать папку с именем n+1 при наполнии предыдущей более, к примеру, 1000 файлов. А в бд хранить номер папки.