Структура БД для хранения файликов

Benderlio

Новичок
Структура БД для хранения файликов

Подскажите оптимальную структуру БД для хранения файлов/картинок...

необходимо хранить 3 файла-картинки (маленькую, большую, огромную) для одной модели

получается такая структура таблицы

model_picture
------------------
model_id
model_picture_id
model_picture_small
model_picture_normal
model_picture_big

но не совсем удобно ... при удалении улетят все данные, либо вытирать отдельное поле...
как быть ?
 

Benderlio

Новичок
ну в смысле все три поля если удалять по айди ....
т.е. прийдеться по полям вытирать...
я к тому может есть стрктура поудобнее? типа

model_picture
------------------
model_id
model_picture_id
model_picture_url
model_picture_type(типа маленькая, большая и т.д.)
 

AHTIXPICT

Новичок
а если картинки хранить не в БД а в файловой системе. И хранить всего одну картинку - оригинал.
А остальные получать путем GD-функций (уменьшать, увеличивать, etc.)
В базе хранить только путь к картинке и служебную инфу (имя, описание ...)
 

Bitterman

Новичок
Развивая мысль AHTIXPICT: картинки надо ОБЯЗАТЕЛЬНО хранить в файловой системе, а не в БД, хотя бы потому, что файловая система для этого и предназначена. При этом, я бы создал в отдельном каталоге (допустим ModelImages) 3 папки : Small, Original, Big. Соответственно маленькие картинки хранятся в папке Small, большие в папке Big, оригинальные - в папке Original. При этом именем картинки является ID модели, к которой она относится. В результате, из пяти полей таблицы, которые указаны в первом посте, нужно только одно - ID модели. Не уверен, что нужно хранить в базе путь к картинке, так как менятся ему собственно не с чего, так что его можно указывать прямо в скрипте.
 

akd

dive now, work later
Команда форума
я вам еще больше мысль разовью ..
у картинок есть расширение (вполне даже разное у всех трех) и размер, который дергать каждый раз из всяких imagesize нельзя, т.е. нужно где-то хранить .. :)
 

Bitterman

Новичок
akd
С помощью GD или ImageMagick проблема с расширениями легко решается :). Кроме того, гораздо логичнее получать большую и малую картинки из оригинальной, а не загружать отдельно. Тогда вообще вопросов по разрешениям быть не должно. Насчет размеров - для большой и маленькой картинок они вполне могут быть стандартными, что касается оригинальной - то тут, наверное, действительно стоит держать размеры в БД.
 

akd

dive now, work later
Команда форума
Bitterman, логично то она да, но бывают клиенты, которые хотят маленькую картинку в профиль а большую в анфас. :)
во всяком случае у меня такое было ..
 

Bitterman

Новичок
akd
Это уже частный случай, который требует отдельного рассмотрения. Может быть даже врачебного вмешательства :)
Я говорил про общий, так как тредстартер про особые условия не упоминал.
 
Сверху