На странице выводится каталог компаний с их логотипами.
Есть сущности^ Company и File
Файлы берутся из хранилища, путь генерится методом файлового хранилища
Думаю над решением добавить у Company свойство logo:
Вариант 1: записывать путь к файлу в хранилище вместе с именем - path/to/logo.jpg
плюсы: нет лишнего запроса к БД для получения пути и имени файла
минус: дублирование информации в БД в таблице files (там уже есть поля path и file)
Вариант 2; записывать только ID файла - 357
плюсы нет дублирования информации в БД
минусы: лишний запрос к базе для получения пути и имени
Все ли я учел плюсы/минусы?
Может есть еще варианты?
Какое обычно решение выбирают для подобной задачи?
Vitaly Melnikov, Решать вам в конечном итоге, я же не знаю вашей ситуации.
Если для дублирования информации у вас нет веских причин, то нужно этого избегать, т.к. дублирование ведет к проблеме синхронизации информации.
И еще один момент: хранить полный путь в БД так же не стоит - так вы связываете себя с конкретным местом расположения файлов. Хранить в БД стоит относительный путь, относительно какого-либо базового какталога, который задается в параметрах программы. Абсолютный путь будете получать складывая базовый каталог и относительный путь из БД.
>> хранить полный путь в БД так же не стоит
да конечно, здесь у меня решение: <путь к хранилищу> . <путь в хранилище>/logo.jpg
<путь в хранилище>/logo.jpg - вот эту часть по первому варианту я думал хранить в базе
Не нашел правда примеры подобного, как такие составные пути в шаблоны передают?
Тут нет каких-то особых плюсов и минусов. Это вобще вопрос не про Doctrine. Но, второй вариант конечно лучше. Если жалко лишних запросов - используйте кэш.