2013-03-05 5 views
1

У меня есть сайт PHP, разработанный с помощью UserCake и PHPMyEdit и мои данные, хранящиеся в MySQL. Теперь я хочу, чтобы загрузка файлов PDF также была способна управлять разрешениями доступа для разных пользователей, а также решение должно работать для большого количества загрузок файлов.php безопасное и масштабируемое управление файлами

Я хочу знать, что это хранение PDF-файлов в MySQL - хорошее решение для моих целей?

если нет, то лучшее и готовое решение?

Thx,

+0

Файлы в базе данных почти никогда не являются «хорошей» идеей. есть некоторые ОЧЕНЬ ограниченные случаи использования, где это может быть оправданным, но неизбежные недостатки делают их ОЧЕНЬ редкими. –

ответ

3

Хранение бинарных файлов на вашей базе данных, как правило, не очень хорошая идея.

Преимущества хранения в базе данных:

  • Это позволяет воспользоваться преимуществами механизмов безопасности БД в
  • Хранение сгустки в базе данных также означает, что вы никогда не придется беспокоиться о повторяющихся имен файлов ,
  • Также означает, что, когда загрузка идет не так, вы можете просто отменить транзакцию, вам не нужно искать файлы и стирать их с диска.

Недостатки хранения в базе данных:

  • Вы должны сериализовать файлы писать и десериализации читать их, что гораздо медленнее, чем просто написание/чтение файла;
  • Использование более высокой памяти (представьте загрузку набора результатов со многими строками, все из них с каплями)
  • Будут делать резервные копии базы данных очень, очень тяжелыми и медленными.
  • Blobs обычно переносятся в базу данных в кусках 4kb, что доставит вам огромные накладные расходы для файлов, которые больше этого.

Обычно быстрее получить путь к файлу из базы данных и передать файл непосредственно пользователю.

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

0

Вы можете сохранить относительный путь к pdf в базе данных. Таким образом, вы можете избежать всех накладных расходов на БД.

Если вы храните сам PDF, это должно быть оправдано по очень сильным причинам.

Смежные вопросы