Вообще при наличии интернета все вопросы гуглятся за время меньшее чем написание этого поста...
Мой класс для работы с базой данных расположен в моделях,
Это не класс модели. Это адаптер работы с бд.
там же классы для работы с таблицами в бд User и Goods
Это больше похоже на мвц, но вот дальше какая-то непонятная фигня:
Я вызываю все эти модели в /app/core/model.php - основной класс моделей, который в свою очередь вызывается в основном контроллере.
Куда вызываете? Зачем? Ваши User и Goods должны наследоваться от модели, если у вас выбран тип Active Record. А в контроллере вы уже создаете экземпляры нужных классов.
Вопрос 2. Что вообще должно быть в моделях? Насколько правильно создавать функции для работы с той или иной таблицей? Где подчерпнуть пример?
В модели должна быть реализована бизнес логика и методы работы с бд (в случае Active Record), в некоторых случаях так же связи объектов между собой. Все это легко гуглится, посмотреть можно в любом современном фреймворке, например что-то простенькое типа fat-free или более серьезное типа лары или симфони.