Второй вариант какой-то не красивый и не соответствует модели.
Ваш вариант вполне хорош при условии что это первичный ключ уже содержит достаточно информации.
Но если есть необходимость в модели используйте шаблон Proxy. Т.е. создавайте частично инициализированные объекты и делайте запросы для загрузки остальных данных по необходимости.