alex77
Новичок
Инициализация многих объектов и количество запросов к БД.
Здравствуйте.
Как лучше и правильнее реализовать следующее:
Существует объект-"контейнер"(к), имеющий свойство - массив объектов(о) одного класса.
Как надо инициализировать все (о)?
я вижу 2 способа
1. передавать в конструктор только id объекта(о), и уже в конструкторе инициализировать все свойства из БД, или
2. в объекте(к) выполнять один запрос к БД, получать все свойства для всех объектов(о) и в цикле передавать в конструктор(о) сразу все данные, необходимые для создания(о).
первый способ мне не нравится тем, что надо выполнять много запросов к БД, такое будет тормозить.
второй способ получше, но если много свойств, то у конструктора будет очень много параметров (в моём случае получилось 37), как-то неаккуратно получается.
В поиске искал, нашел 2 большие темы с подобными вопросами, там много написано, но так и не пришли к однозначному решению.
http://phpclub.ru/talk/showthread.php?s=&threadid=95505&highlight=%E8%ED%E8%F6%E8%E0%EB%E8%E7%E0%F6%E8%2A+%E7%E0%EF%F0%EE%F1
http://phpclub.ru/talk/showthread.php?s=&threadid=78462&highlight=%E8%ED%E8%F6%E8%E0%EB%E8%E7%E0%F6%E8%2A+%E7%E0%EF%F0%EE%F1
Если у кого были подобные задачи, поделитесь опытом.
Здравствуйте.
Как лучше и правильнее реализовать следующее:
Существует объект-"контейнер"(к), имеющий свойство - массив объектов(о) одного класса.
Как надо инициализировать все (о)?
я вижу 2 способа
1. передавать в конструктор только id объекта(о), и уже в конструкторе инициализировать все свойства из БД, или
2. в объекте(к) выполнять один запрос к БД, получать все свойства для всех объектов(о) и в цикле передавать в конструктор(о) сразу все данные, необходимые для создания(о).
первый способ мне не нравится тем, что надо выполнять много запросов к БД, такое будет тормозить.
второй способ получше, но если много свойств, то у конструктора будет очень много параметров (в моём случае получилось 37), как-то неаккуратно получается.
В поиске искал, нашел 2 большие темы с подобными вопросами, там много написано, но так и не пришли к однозначному решению.
http://phpclub.ru/talk/showthread.php?s=&threadid=95505&highlight=%E8%ED%E8%F6%E8%E0%EB%E8%E7%E0%F6%E8%2A+%E7%E0%EF%F0%EE%F1
http://phpclub.ru/talk/showthread.php?s=&threadid=78462&highlight=%E8%ED%E8%F6%E8%E0%EB%E8%E7%E0%F6%E8%2A+%E7%E0%EF%F0%EE%F1
Если у кого были подобные задачи, поделитесь опытом.