@NikSIk31

Как лучше хранить изображений? Одна папка или много?

Приветствую! У меня есть БД с ЗАДАНИЯМИ, у каждого задания есть от 0 до 10 фотографий. Как лучше хранить фотографии к заданиям? Сделать поле images в БД (там где и вся инфа о задании) и в этом поле через разделитель хранить названия всех фото жля контретного задания, а все фото в одной папке. Или сделать для каждого задания свою папку и назвать ее по ID задания? Как лучше для производительности? Подскажите пожалуйста
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 3
@FanatPHP
С разделителями в бд вообще никогда ничего хранить не надо.
Если информация о файлах в БД не нужна, то не хранить её там вообще.
Делать отдельные папки будет вполне достаточно.
Ответ написан
Gomonov
@Gomonov
Если Вы уверены, что один файл не будет относится более чем к одному заданию - то да, как в ответе выше - один ко многим. Иначе много ко многим. Так же позволю дать рекомендации. Хранить лучше не оригинальное название, а хеш от файла, таким образом сразу решается проблема одинаковых имён файлов. Это поле можно сделать уникальным. Если оригинальное имя необходимо - храните его отдельным полем. По поводу папок. Если это веб-приложение, посещаемость большая и файлов овермного - стоит раскидывать по папкам. Например у вас хеш имеет вид ab1c3fd...... , то можно создать папку с именем из двух первых символов хеша. В данном случае ab - и кинуть файлик туда. Если файлов прям оооооооооочень много, можно делать вторую папку по второй паре символов из хеша. Конечный путь ab/1c/ab1c3fd......
Ответ написан
HeadOnFire
@HeadOnFire
Laravel & WordPress Evangelist
Это называется "отношение 1 к многим", оно же one to many, оно же 1:n. На уровне базы данных выглядит так:

Таблица tasks:
- id
- ...

Таблица photos:
- id
- task_id (foreign key)
- ...

Все фотографии для конкретного задания получаются запросом:
SELECT * FROM photos WHERE task_id=X

В каких папках их хранить на самом диске - вопрос отдельный и по большому счету несущественный.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 55 000 до 80 000 руб.
WACDAQ Москва
от 120 000 руб.
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
22 авг. 2019, в 09:33
400 руб./в час
22 авг. 2019, в 09:06
20000 руб./за проект
22 авг. 2019, в 07:30
10000 руб./за проект