Господа, всем доброго дня!
Есть ситуация: нужно каким-то образом хранить картинки, привязанные к товару. Картинок у товара может быть сколько угодно. Товаров тоже может быть сколько угодно. Я создал таблицу с отношением один ко многим (товар->картинка), чтобы складывать туда пути... Тем самым можно присваивать любые имена файла. С базой данных вроде все понятно. А вот как именно хранить на диске?
Например, если я буду называть фотографии так: prodid_currenttimestamp.jpg то если вдруг загрузят одновременно картинки, то одна перепишет другую... Или может быть prodid_photoid.jpg? А чтобы не так легко было спереть брать от всего этого, например, md5? Тогда какова вероятность, что найдутся 2 различных имени с одним и тем же хэшем?
Слышал некоторые хранят прямо в базе, в поле longblob. Но мне не нравится такой подход, - это же на каждую картинку дергать базу надо, как я понял. 1 картинка = 1 запрос, иначе как браузеру передать?
Вообще подскажите, как толковые люди справляются с данной задачей? Может быть разбить по каталогам, где имя каталога - prodid? Но тогда их будет огромное количество и вероятно это не сильно хорошо...
Кстати, если кто знает, как хранят картинки гиганты (facebook, mail и т.д.) тоже буду рад! Мой проект, естественно, не такой огромный, но для общего развития... Короче буду очень признателен!