Валерий Рябошапко: имена обычных картинок, image/1.jpg /image/2.jpg и т.д. Лимит картинок около 20-40. Картинки предполагается выводить из базы. Поэтому я и спрашиваю, стоит ли создавать 20-40 полей image1, image2, imageN или все в одно поле
x222_try: ещё на уровень выше. Что за сайт? Блог? Интернет-магазин? Фотогалерея? Хотя почти наверняка Вам нужно узнать, что такое связь многие-ко-многим.
x222_try: если знаете, то применяйте. Зачем создавать в таблице десяток дополнительных полей, если половина из них будет пустой? Одна картинка - одна запись в специально обученной таблице.
filepath я бы вынес в отдельную таблицу поскольку:
а) при большом количестве файлов будет расходоваться много лишнего места на данные и возможный индекс по этому полю
б) при потенциальной миграции большой группы файлов между каталогами, усложнится выполнение запроса.
Если вы не видите смысла, это не значит что его нет
1) экономия дискового места, - не приходится дублировать одну и ту же информацию
2) удобство в случае необходимости переноса файлов из одного каталога в другой.
2.1) удобство в случае миграции всего файл сервера.
Если постараться, можно придумать еще несколько потенциальных сценариев.
ilya_k: Совсем не единственный, без этой таблицы работает большинство CMS систем. Не спорю, для больших проектов, это будет правильно, но для обычных сайтов компаний, блогов, то в этой таблице нет никакой необходимости.
Создайте отдельную таблицу, например "post_images", с полями типа "id", "path", "post_id", "title" и для каждой картинки добавляйте новую запись со связью с нужным постом в вашем блоге.
Мы же не хотим дублей строковых значений в одной таблице, поэтому так:
Таблица 1: file_id, path
Таблица 2: id, file_id, title, description, ...
Соответственно file_id внешний ключ.
PS Это отностится ко всем одинаковым файловым ресурсам.
Вопрос не конкретный.
Если все картинки в одной папке достаточно хранить имя файла, а в скрипте делать конкат путь+имя из базы.
Если возникает потребность хранить в одной таблице картинки из разных директорий стоит задаться вопросом правильно ли спроектирована база.
Иногда путь вообще хранить не нужно, можно составлять путь как id.'/avatar.jpg'.