StalkerClasses
Новичок
- Начну с обратного - все наши скрипты идут через git.
- Все содержимое контентное хранится в БД,
- Файлы хранятся например в папке Public (или на удаленном диске).
Тему бэкапов обсуждал уже - но для себя понял что еще придется кое-что подтянуть в этом вопросе...
Мой вопрос про файлы - как вы обычно храните файлы, которые нужно как-то присоединить к записи?
Я знаю минимум 2 варианта и еще 1 мне очень понравился
1 вариант это записать в поле в БД image (field) -> img.jpg, images (field) -> image1.jpg;image2.jpg;image3.png
Минусы: вы не можете выполнять поиск по картинкам по названиям - т.к. храните только basename картинки
2 вариант это создать какую то абстракцию в виде сущностей - например в одной из CMS есть такая штука как FAL (file abstraction layer).
Здесь если заглянуть под капот там будет 3 основных таблицы
File (модель с описание файла)
FileMetaData (более развернутое описание файла - сделано в виде доп. модели - видимо для организации переводов описаний файлов)
FileReference (связь с записью к которой крепится файл в виде полиморфной связи)
3 вариант - открыл для себя не давно
В БД не пишутся данные о наличии файла в какое-то поле.
По факту например загружена ли картинка аватарки для пользователя можно узнать только посмотрев содержимое соответствующей папки:
/public/images/users/avatars/user-id-1/image.png
Из минусов что вижу нет возможности организации поиска по картинкам, а также нет возможности повторно использовать изображение (файл).
Из плюсов что вижу - база живет отдельно, файлы живут отдельно. Нет необходимости сканировать базу на предмет синхронизации значений в БД и в структуре папок.
Как вы обычно организуете работу с изображениями (файлами) в своих проектах. И как их бэкапите?
- Все содержимое контентное хранится в БД,
- Файлы хранятся например в папке Public (или на удаленном диске).
Тему бэкапов обсуждал уже - но для себя понял что еще придется кое-что подтянуть в этом вопросе...
Мой вопрос про файлы - как вы обычно храните файлы, которые нужно как-то присоединить к записи?
Я знаю минимум 2 варианта и еще 1 мне очень понравился
1 вариант это записать в поле в БД image (field) -> img.jpg, images (field) -> image1.jpg;image2.jpg;image3.png
Минусы: вы не можете выполнять поиск по картинкам по названиям - т.к. храните только basename картинки
2 вариант это создать какую то абстракцию в виде сущностей - например в одной из CMS есть такая штука как FAL (file abstraction layer).
Здесь если заглянуть под капот там будет 3 основных таблицы
File (модель с описание файла)
FileMetaData (более развернутое описание файла - сделано в виде доп. модели - видимо для организации переводов описаний файлов)
FileReference (связь с записью к которой крепится файл в виде полиморфной связи)
3 вариант - открыл для себя не давно
В БД не пишутся данные о наличии файла в какое-то поле.
По факту например загружена ли картинка аватарки для пользователя можно узнать только посмотрев содержимое соответствующей папки:
/public/images/users/avatars/user-id-1/image.png
Из минусов что вижу нет возможности организации поиска по картинкам, а также нет возможности повторно использовать изображение (файл).
Из плюсов что вижу - база живет отдельно, файлы живут отдельно. Нет необходимости сканировать базу на предмет синхронизации значений в БД и в структуре папок.
Как вы обычно организуете работу с изображениями (файлами) в своих проектах. И как их бэкапите?