Реализация фотогалереи. Как лучше?

N.N.

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

Хочу реализовать не сложную фотогалерею с элементарными функциями:
- создание/удаление "альбомов";
- загрузка/удаление изображений.

Но не могу справиться с делемой, как правильнее было бы ее (фотогалерею) реализовать, как бы саму логику работы.
На вскидку есть два варианта:
- каждый альбом, это отдельная папка, соответственно, при загрузке, изображения заливаются в ту или иную папку в зависимости от выбора админа. С одной стороны плюс в том, что можно обойтись без баз, создание очередного альбома, это создание папки, при заливке изображения не трудно посмотреть, какие директории есть и вывести их списком для выбора, чтобы залить изображение в нужную папку;
- второй вариант, заливать все изображения в одну единственную папку, при этом сохранять в базе имя загруженного файла (1 поле таблицы) и название альбома (2е поле таблички). Соответственно вывод того или иного альбома для пользователя реализуется элементарной выборкой из базы нужной группы имен изображений.

Подскажите пожалуйста, каким образом реализовать фотогалерею было бы правильнее?
Может быть есть еще какие варианты?

P.S. Хочу разобраться и реализовать все сам, поэтому готовые скрипты использовать не хочу.
 

KolyaA

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

craz

Нестандартное звание
Чтобы что-то стоящее получилось, без баз будет не обойтись все равно, мне кажется. Но если нужно попроще и побыстрей, то, наверное, возможно и таким образом действовать.
не обоснованое заявление. абсолютно.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
С основанной на базе галереей потом проще работать, чем писать те же постраничные выводы файлов из каталогов и прочего. Сортировки опять же проще.
 

craz

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

N.N.

Новичок
Судя по всему стоит совместить два варианта.
Так действительно получится более универсально и удобно для будущего развития галереи.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
craz
Что проще, вытащить по индексу 1к элементов с БД, или опросить 1000 файлов в ФС? Скажем нужно узнать время создания файла, размеры в кб и прочее.
 
  • Like
Реакции: N.N.

craz

Нестандартное звание
craz
Что проще, вытащить по индексу 1к элементов с БД, или опросить 1000 файлов в ФС? Скажем нужно узнать время создания файла, размеры в кб и прочее.
а вы что хотите в базе время создания размер и т.д. хранить???
 

KolyaA

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

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
А ты хочешь при выводе каждый раз задрачивать хард, запросом того, сколько весит фотография?)
 

N.N.

Новичок
Что проще, вытащить по индексу 1к элементов с БД, или опросить 1000 файлов в ФС
Это один из моментов которые лично меня подстегивают к совмещению использования отдельных папок для альбомов и использования базы ..т.к. даже простая галерея в конце концов может прилично разростись, а как мне кажется поиск (к примеру) какого то определенного изображения именно "через" базу будет проходить несколько быстрее, чем если бы я опирался только на работу с ФС. Ну или к примеру взять случай, когда надо подсчитать кол-во файлов в альбоме...
Поправьте, если не прав.
 

craz

Нестандартное звание
еще один аргумент в пользу совмещения, чтобы "задрачивать" все равномерно. распределяя нагрузку :)
аще кул))) подрочим вместе)

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

N.N.

Новичок
И все же.. процитирую по данному вопросу "реплику" своего товарища:
Толи дело дрочить базу, которая находится в оперативной памяти, толи дело считывать пару тысяч файлов с файловой системы.
На серверах основное узкое место обычно - жесткий диск. Я конечно не беру во внимание высоконагруженные системы, где база данных занимает несколько гиг и имеет дюжину миллионов записей. Но даже в этом случае база — всегда быстрее.
Почему для серверов в цене SCSI винты? Потому что у них обороты выше, а значит скорость доступа к данным выше. А для чего это? Для того, что при генерации одной страницы сайта происходит штук 20-200 запросов к файлам на винте: css, js файлики, куча картиночек малюсеньких. А что такое для жесткого диска отдать одновременно 200 файлов, которые лежат в разных углах? А вы ещё хотите добавить к этому списку листинг директорий с файлами галереи.
Причем по моим наблюдениям логика браузеров такая, что они закачивают все картинки, указанные в css, не смотря на то, используется ли данный параметр css на данной конкретной странице или нет. По крайней мере различные приложения по тестированию скорости загрузки страницы часто указывают на эти узкие места. Именно отсюда растут технологии css-спрайтов и методы хранения картинок в css в бинарном виде.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
craz
Тебе явно указал сам ТС, что пишет он галерею, какой нахрен каталог? Настаивать можешь водку на кедровых орешках ;)
 

N.N.

Новичок
Если уж и стоиит задача - не использовать базу, то надо хотябы создавать тогда индексные файлы - файлик с листингом файлов в директории. И при операциях генерации страниц обращаться к этому одному файлу за информацией о количестве файлов в директории и прочими данными. А файл этот обновлять при удалении или добавлении изображений. Тогда отпадёт необходимость постоянного считывания содержимого директорий и сведений о файлах в ней при любом запросе страницы.
Но всё равно это огромный геморой. В Вилабаджо давно юзают базы.
 

N.N.

Новичок
В общем, спасибо, господа! :)
В процессе я таки определился, в каком направлении надо работать.
 

no_santa

Снегур
Если уж совсем маленькая галерея - можно сделать и без базы. Если есть хоть какие-то дополнительные пожелания - без нее вам не обойтись.

Как хранить файлы - http://habrahabr.ru/blogs/webdev/115161/

Одобряю ваше желание разобираться самостоятельно! Особенно, если оно не связано с конкретными срочными обязательствами.
 
Сверху