Использование BLOB для сохранения пути и его получения - PullRequest
0 голосов
/ 12 декабря 2011

Я читал, что лучше использовать BLOB для сохранения пути изображения в базе данных, чем использовать базу данных для сохранения изображения.

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

РЕДАКТИРОВАТЬ

Я использую PHP и на самом деле просто заполняю форму и обрабатываю форму.Я собираюсь сделать кнопку просмотра "изображение" на форме, но не знаю, как обработать остальное, вставив его.

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

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

1 Ответ

4 голосов
/ 12 декабря 2011

Звучит так, будто вы немного запутались по поводу больших двоичных объектов, изображений и путей в базе данных. Давайте пройдем через это.

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

Если вы хотите сохранить само изображение в базе данных, вы должны использовать столбец типа BLOB. BLOB-объект - это «большой двоичный объект» - это то, как вы будете хранить данные, не являющиеся разновидностью строки или числа. Если изображения профиля ваших пользователей маленькие (например, аватары размером с Twitter), то вы можете сохранить их в базе данных как BLOB данные.

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

РЕДАКТИРОВАТЬ: Отвечая на ваше уточнение: да, вы обязательно должны хранить путей в базе данных и изображений в файловой системе. Это стандартный способ сделать это. Одна из основных причин этого заключается в том, что вы можете работать с изображениями отдельно от работы с базой данных. Создать резервную копию папки с фотографиями намного, намного, намного проще, чем создать резервную копию большой базы данных! Вы также можете, например, автоматически создавать уменьшенные версии изображений или сравнивать их друг с другом и т. Д., Используя другие приложения, которым не нужно прикасаться к вашей базе данных.

Вот учебник от Tizag о том, как загружать файлы с помощью PHP, и вот учебник от W3Schools об этом. При переполнении стека полезными могут быть вопросы " Загрузка изображений PHP " и " Скрипт загрузки изображений в PHP ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...