Офигительно. И все потомки MainLogic будут создавать свое собственное подключение. Не говоря уже о том, что никакой User не должен наследоваться от MainLogic.
@Billy_Milligan Скорость работы запросов не считается по линейной шкале. Тут важнее скорость работы каждого отдельного запроса, а не их количество. Если накосячить с джойнами, то очень легко получить один, который будет медленнее десяти. И наоборот - если у нас запросы быстрые, то их можно городить хоть сотню. В данном конкретном случае я не вижу проблемы сделать несколько запросов.
Во-первых, кавычки должны были натолкнуть на мысль, что фразу не стоит воспринимать буквально.
Во-вторых, хотя учиться и интересно, но работать тоже иногда надо. И вот в процессе работы ВНЕЗАПНО проблемы, которые ни в одном учебнике не были описаны. На освоение любого из перечисленных инструментов можно потратить годы, если использовать их не в стиле "фигак-фигак, и на продакшен".
Рад, что пригодилось. При ошибках БД библиотека кидает ошибку (или исключение) - соответственно, лучше накидать небольшой error handler и ловить (все, не только ошибки БД) в нём. А в хендлере проверять - если сервер боевой, то писать ошибку в лог, а если нет - то выводить на экран.