-- Типа, теория:
1. Модель — это объект, своими свойствами описывающий предмет моделирования. Источник этих данных может быть любой: Это может быть запись в БД, а может и не быть. Это может быть файл. Или просто структура в памяти. Или даже случайные значения.
2. Модель может представлять не только сведения об объекте моделирования, но и способы их изменения (заполнения, фильтрования, и тд)
Если брать твой пример: представь модель, которая содержит информацию об одном Сообщении в чате: у нее есть несколько однозначных критериев, автор, дата, и текст. То, что в ТЕХНИЧЕСКИ, в КОНКРЕТНОЙ РЕАЛИЗАЦИИ модели эти данные хранятся в РСУБД в какой-то табличке, у которой поля называются user_id, message, и time_add — для понимания модели вообще не важно.
3. Если предположить, что другими сущностями, которые ты моделируешь, являются например, Пользователь и Разговор, то становится понятно, что модель Сообщения может иметь метод, который например, вернет модель с предствлением Пользователя, который связан с этим сообщением. Это называется связью один-к-одному.
4. Модель Разговор может содержать в себе информацию обо всех Сообщениях, произошедших в рамках Разговора. Это связь один-к-многим. И например, иметь метод, позволяющий получить набор из последних 10 сообщений. Или отфильтровать их по Пользователю.
-- Типа, реальность
5. Когда в КОНКРЕТНОЙ технической реализации моделей используется реляционная база данных, возникает очевидная проблема: объектные структуры и их связи плохо и сложно представляются через набор линейных таблиц. Поэтому существуют ORM (Объектно-Реляционное Отображение) — попытка технически обойти эти ограничения, и дать возможность выбирать реляционные линейные данные в объектное представление, и сохранять обратно изменения.
6. Один из вариантов ORM называется AR (Active Record), это самая примитивная реализация ORM, в которой проблема решается таким подходом, что каждая Модель описывает одну строку или набор строк в реальной таблице БД, и связи с другими таблицами. Это самый ПРИМИТИВНЫЙ, ТЕХНИЧЕСКИ ПРОСТО РЕАЛИЗУЕМЫЙ и наиболее легко автоматизируемый способ реализации ORM, и оттого — самый распостраненный. Но по этой же причине он хуже всего соотносится с пониманием того, как взаимодействуют модели.