Добрый день.
У меня есть портал, на который загружено уже более 10ккк изображений.
В организации их хранения я использую следующий подход к формированию путей.
/b/C/c283308/bC_w250h300.jpg, где
- /b/C/ - ID изображения, представленный в виде строки (в данном случае ID = 100),
- c283308 - Случайное число от 100 000 до 999 999,
- bC_w250h300.jpg - Имя самого изображения.
Но уже для изображения с ID = 10 000 000 000 (его текстовый вид будет kUKYOA) путь будет вида
/k/U/K/Y/O/A/c616822/kUKYOA_w250h300.jpg
Я не думаю, что это хороший вариант хранения данных. Может, есть какой-либо более эффективный?
К тому же, чтобы сгенерировать ссылку к такому изображению по Prefix'у (kUKYOA) и Ключу (616822), требуется делать цикл по количеству символов у prefix'а, чтобы разбить каждый символ через "/". В данном примере это 6 вызовов substr. Но на странице может быть до 30ти изображений, т.е., приблизительно 180 substr'ов. Я раньше не задумывался об этом, да и проблемы были другие. Как говорится, проблемы решаем по мере их поступления.
Есть мысль делать разбивку префикса nginx'ом, а пользователю отдавать такую ссылку: /kUKYOA/c616822/kUKYOA_w250h300.jpg, а nginx сам ее разобьет в нужном формате. Но, имхо, это бред.
В общем, посоветуйте, пожалуйста.