Vmelnikoff
@Vmelnikoff
PHP разработчик

OneToOne (JOIN) vs лишнее поле у сущности?

На странице выводится каталог компаний с их логотипами.
Есть сущности^ Company и File
Файлы берутся из хранилища, путь генерится методом файлового хранилища

Думаю над решением добавить у Company свойство logo:

Вариант 1: записывать путь к файлу в хранилище вместе с именем - path/to/logo.jpg
плюсы: нет лишнего запроса к БД для получения пути и имени файла
минус: дублирование информации в БД в таблице files (там уже есть поля path и file)

Вариант 2; записывать только ID файла - 357
плюсы нет дублирования информации в БД
минусы: лишний запрос к базе для получения пути и имени

Все ли я учел плюсы/минусы?
Может есть еще варианты?
Какое обычно решение выбирают для подобной задачи?

Всем заранее спасибо за ответы!
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@res2001
Developer, ex-admin
Дублировать данные стоит только если есть острая необходимость. Например, высокая нагрузка на БД. В остальных случаях нормализуйте базу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
voronkovich
@voronkovich
Тут нет каких-то особых плюсов и минусов. Это вобще вопрос не про Doctrine. Но, второй вариант конечно лучше. Если жалко лишних запросов - используйте кэш.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы