Это зависит .
Если у вас много трафика - в диапазоне тысяч уникальных посетителей в минуту - накладные расходы на хранение вашего User.cfc в сеансе со временем будутутяжелить тебяЭтого можно легко преодолеть, добавив к нему аппаратное обеспечение (на какое-то время больше памяти, в конечном итоге - больше серверов и аппаратный балансировщик нагрузки).Конечно, популярность - это хорошая проблема.
Если вам кажется, что в вашем пространстве базы данных есть ЦП, сеть или другое узкое место, вы можете захотеть поместить объект в кэш в памяти сеанса, чтобы у вас было меньше обращенийв базу данных.
Почему я упоминаю эти сценарии?Возможно, вы преждевременно оптимизируете - не решайте проблему, которой у вас нет.Не оптимизируйте вашу память, ЦП и доступ к базе данных до тех пор, пока не возникнут или не возникнут проблемы.
Теперь, исходя из наилучшей архитектурной практики, а не оптимизированного «что лучше для моего процессора» - ну, ямогу только сказать: Это зависит .
По правде говоря, ни один из способов не является неправильным.Если вам нужно проверять учетные данные в вашей базе данных при каждом запросе, не кэшируйте их.Если вам нравится ощущение объекта в сеансе, кешируйте его.Поскольку вы знаете свой собственный домен, вы, вероятно, можете целый день возвращаться и назад, почему вы должны или не должны кэшировать объект пользователя в сеансе.Если это будет облегчать, сделай это.Если это будет усложнять, не надо.
Я бы просто предостерег вас от того, чтобы делать что-то невероятно запутанное или что-то, что не сразу бросается в глаза разработчику, смотрящему на ваше приложение - чем больше вы пишете, тем большевы должны поддерживать вечность, тем больше ваши коллеги будут ассоциировать ваше имя со злом.
Наконец, последнее замечание: если это голосование, я говорю, что вы его кешируете.Это имеет смысл и всегда приятно вызывать session.user.hasRole ("xyz") или тому подобное.