Самым большим дизайнерским решением, которое я могу придумать, является «динамическая» модель AR, в которой создаются поля, основанные на возврате вашего запроса, в отличие от предпочтительного стиля Django и Catalyst «static», где вы перечислите поля в коде, и он запрашивает эти вещи при выполнении запроса (Catalyst также поддерживает динамические модели, но они не поощряются). «Динамический» менее многословен, а «статический» отделяет структуру БД от структуры кода.