Всем доброе утро/день
Есть задание на создание базы данных MySQL, где должны хранится картинка пользователя, и pdf файл, сгенерированный из картинки и имени пользователя. Отмечено, что поле image должно быть типа string, а поле pdf - binary. Не совсем понимаю, что имеется ввиду, должен ли я преобразовывать pdf в blob, а в поле картинки вносить лишь относительную ссылку, а саму картинку хранить в репозитории?
Наличие blob полей будет мешать делать группирующие запросы (использование distinct, group by), это пол беды, эти поля можно присоединять после группировки.
Другое дело, что будет удивлен администратор по резервному копированию БД, так как бэкапы вырастут на порядок, если в базу будут регулярно вноситься объемные бинарные данные.
Так как для файловой системы можно ставить более длинный период между копированием, а для БД - более короткий. Получается, какой-то объем данных, который традиционно хранился в файловой системе, будет храниться в БД. База будет копироваться чаще чем файлы - объем резервных копий увеличится.
Имхо, главный вопрос к этому ТЗ - на кой хер хранить PDF, который генерируется из картинки и текста, если его можно просто сгенерировать на лету из этой картинки и этого текста? Кейсы использования PDF обычно не подразумевают частого обращения, а вот заваливать генерированным контентом базу - довольно очевидная дурь.
Для удобства я предлагаю еще php-исходники залить в БД. А оставить только один index.php, который будет подключаться к БД, доставать все исходники и тут же их выполнять.