Как мне настроить таблицу для загрузки изображений для пользователей? - PullRequest
0 голосов
/ 20 ноября 2011

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

Для вашей информации я использую Zend Framework.

Ответы [ 2 ]

2 голосов
/ 20 ноября 2011

Возможно, это не точный ответ на ваш вопрос. Тем не менее, это может быть совет.

Если вы хотите сохранить изображения или файлы в базе данных, вам нужно поддерживать много вещей. Есть много обсуждений, которые вы можете найти в Google по "изображениям в базе данных или папках"

Я бы порекомендовал вам хранить изображения в папках, а не в базе данных. Таким образом, в вашей базе данных вам просто нужно оставить только «путь» к изображениям в виде столбца.

Другими словами, ваша таблица USERS может иметь столбец:

profile_image_path varchar2(200)

вместо сохранения всего изображения как

 profile_image blob

Преимущества этого решения:

  • вы можете позволить Apache обрабатывать изображения как статистический контент (его можно рассматривать как динамический контент, если вы храните его в базе данных).
  • Вам не нужно беспокоиться о том, как визуализировать изображение в базе данных, просто рендеринг как путь, и все!
  • вы можете забыть о ведении больших данных в базе данных (просто подумайте о резервном копировании, импорте, экспорте и т. Д. Из 10 000 изображений в базе данных)

Недостатками этого решения являются:

  • Вы должны хранить резервную копию отдельно от базы данных. Однако это не более трудоемкая задача, так как вам все равно придется делать резервные копии ваших php, файлов и т. Д.

Подробнее можно прочитать в гугле.

0 голосов
/ 20 ноября 2011

Один из простых способов - создать подпапку при первой загрузке пользователем изображения (имя папки также может быть идентификатором пользователя). Затем вы можете хранить пользовательские изображения в своей собственной подпапке. Таким образом, вы избежите многих проблем столкновения. Используя это решение, вы можете получить очень простую таблицу, например:

IMAGE (UserId, ImageName, IsMain)

ImageName может или не может (делать так, как вам нравится больше), содержать имя подпапки (поскольку оно совпадает с UserId).

...