2015-03-20 2 views
0

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

/images/users/user1.png 

и доступ к изображению непосредственно?

Что делать, если у меня есть более одного изображения на пользователя? Будет ли это хорошей практикой?

/images/user1/pic1.png 

Так в основном мой вопрос, почему бы вам сохранить путь и отходов пространства на картинке, когда вы уже знаете, где снимки без каких-либо запросов БД?

Это всего лишь общий вопрос, кроме любых технологий.

ответ

0

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

  • Каждый пользователь будет иметь папку для всех своих картин. /path/user1/img1.jpg, /path/user1/im2.gif

  • Все фотографии будут находиться в той же папке, но username будет префикс имени файла /path/user_pics/user1_img1.jpg, /path/user_pics/user2_img3.gif

Лично я предпочитаю первое.

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

+0

Значит, вы имеете в виду, что мне всегда нужно сохранять имена изображений? Даже если я знаю, что есть только jpeg-изображения с непрерывным числом (/user1/img1.jpg, /user1/img2.jpg, ...)? Почему бы не просто сканировать папку пользователей (на стороне сервера) для изображений и их отображения? –

+0

Вот если вы хотите сохранить исходное имя файла, что может быть важно в зависимости от проекта, для различия. Да, вы можете просто сканировать папку и отображать изображения по метке времени. Но если каждая фотография user1 имеет заголовок, и вы хотите отобразить подпись вместе с рисунком? Как вы получите заголовок, хранящийся в БД? В любом случае вам не нужно сохранять имя файла. Если каждая строка в таблице соответствует изображению с первичным ключом «imageID», хешированная строка «идентификатор изображения» будет именем файла в папке. В этом случае имя файла просто будет излишним. – Ola