webdeveloper
Guest
Upload файлов на сервер - DB vs HDD
Уважаемые коллеги, сижу и мучаюсь - не могу решить как именно организовать загрузку графических файлов на сервер для своей CMS. Не то что бы я не знал как это сделать. Я не знаю что именно лучше. Вот решил посоветоватся.
Итак есть два пути: писать в базу данных или писать на диск. Оба способа имеют свои недостатки и свои достоинства.
Начнем с базы данных. Недостаток, на мой взгляд, тут один - размер базы данных. С другой стороны, на хостинге все равно место отводится под базу и скрипты совместно а не раздельно. Так что какая разница гда хранить это все.
Зато достоинств множество.
Во-первых нам абсолютно безразлично какое расширение имет данный файл - GIF, JPG или PNG. Мы к нему обращаемся не по его имени а через php-скрипт. Типа так:
<img src=http://someserver.com/getImage.php?id=1213 border=0 alt="Image">
Если мы в какой то момент рашим заменить картинку и поменять GIF на JPG (или наоборот) то нам не придется отыскивать все ссылки на эту картинку и править их.
Мы можем сделать одну базу данных и использовать ее для нескольких проектов лежащих на разных серверах. Все картинки будут всегда совпадать. Например сайт с несколькими языковыми версиями.
Нам не нужны permissions на запись в каталог сервера.
В случае хранеия файлов на диске мы не имеем большой базы данных. Но при этом мы имеем большое колличество проблем дргого рода.
Во-первых: нам нужно установить разрешения на запись в каталог сервера.
Во-вторых: при замене одного файла другим у нас меняются ссылки на эти файлы, что может привести к тому что часть информации на сайте может выглядеть некорректно.
В-третьих: для того что бы обеспечить уникальность имен файлов приходится устраивать пляски с бубном.
В-четвертых: если у меня есть обна база данных и несколько сайтов работющих с ней, то придется каким то образом синхронизировать все эти файлы. Как это сделать я даже и не представляю.
В-пятых: если мне нужно удалить целую галлерею картинок, то мне нужно сначала найти все файлы которые там находятся, удалить все что касается этих файлов из базы данных, и с диска. Это все не сложно, но колличество операций увеличивается практически в два раза. Соответсвенно надежность всего этого процесса уменьшается.
Хотелось бы услышать мнение почтенной публики по этому вопросу. Может быть кто то подкинет какие то "за" и "против". Комментарии и замечания are very welcome!
Уважаемые коллеги, сижу и мучаюсь - не могу решить как именно организовать загрузку графических файлов на сервер для своей CMS. Не то что бы я не знал как это сделать. Я не знаю что именно лучше. Вот решил посоветоватся.
Итак есть два пути: писать в базу данных или писать на диск. Оба способа имеют свои недостатки и свои достоинства.
Начнем с базы данных. Недостаток, на мой взгляд, тут один - размер базы данных. С другой стороны, на хостинге все равно место отводится под базу и скрипты совместно а не раздельно. Так что какая разница гда хранить это все.
Зато достоинств множество.
Во-первых нам абсолютно безразлично какое расширение имет данный файл - GIF, JPG или PNG. Мы к нему обращаемся не по его имени а через php-скрипт. Типа так:
<img src=http://someserver.com/getImage.php?id=1213 border=0 alt="Image">
Если мы в какой то момент рашим заменить картинку и поменять GIF на JPG (или наоборот) то нам не придется отыскивать все ссылки на эту картинку и править их.
Мы можем сделать одну базу данных и использовать ее для нескольких проектов лежащих на разных серверах. Все картинки будут всегда совпадать. Например сайт с несколькими языковыми версиями.
Нам не нужны permissions на запись в каталог сервера.
В случае хранеия файлов на диске мы не имеем большой базы данных. Но при этом мы имеем большое колличество проблем дргого рода.
Во-первых: нам нужно установить разрешения на запись в каталог сервера.
Во-вторых: при замене одного файла другим у нас меняются ссылки на эти файлы, что может привести к тому что часть информации на сайте может выглядеть некорректно.
В-третьих: для того что бы обеспечить уникальность имен файлов приходится устраивать пляски с бубном.
В-четвертых: если у меня есть обна база данных и несколько сайтов работющих с ней, то придется каким то образом синхронизировать все эти файлы. Как это сделать я даже и не представляю.
В-пятых: если мне нужно удалить целую галлерею картинок, то мне нужно сначала найти все файлы которые там находятся, удалить все что касается этих файлов из базы данных, и с диска. Это все не сложно, но колличество операций увеличивается практически в два раза. Соответсвенно надежность всего этого процесса уменьшается.
Хотелось бы услышать мнение почтенной публики по этому вопросу. Может быть кто то подкинет какие то "за" и "против". Комментарии и замечания are very welcome!