2 варианта: 1) Хранить метаданные файла в бд (имя, расположение) и сам файл в файловой системе или можно прямиком контент файла хранить в бд? (то что будет больше оперативной есть и то, что бд будет толстой понимаю)
лучше 1-й вариант
Зависит от требований. См. https://wiki.postgresql.org/wiki/BinaryFilesInDB Это тут уже не раз обсуждалось, кстати.
Вот с 1 подходим возникает такая проблема, когда приходит запрос и нужно записать данные по сущности и файлы, прикрепленные к ней и соответственно метаданные по файлам. Откатить записи в бд не составляет сложности, но можно ли как-то синхронизовать в одну транзакцию запись файлов и в бд, чтобы в случае какой-либо ошибки откатывать всё.
прочитаю, спасибо
хранить отдельно, ссылки в бд
писать во временные файлы, потом заменять, если не заменилось - роллбек.
Дкоументы сами по себе маленького размера (меньше пол мегабайта) и самих файлов не так уж и много (десятки гигов максимум), так что прочитав гайд подумал, что хранить в бд файлы будет по практичнее, спасибо за ответ и за решение, учту в будущем.
Обсуждают сегодня