Model در معماری نرمافزار میتواند نماینده داده یا مفهومی از دامنه باشد. در ORMهایی مانند Eloquent، مدل معمولاً به یک جدول پایگاه داده مرتبط است و عملیات خواندن و تغییر رکوردها را فراهم میکند.
مدل صرفاً یک ظرف برای فیلدها نیست، بسته به طراحی پروژه ممکن است قواعد و رفتارهای مرتبط با همان مفهوم را نیز در خود نگه دارد. بهتر است از تبدیل مدل به محل تمام منطق برنامه جلوگیری شود.
مدل User در Laravel معمولاً رابطهای با جدول users دارد. اگر همه قواعد پیچیده دامنه در مدل ذخیره شود، نگهداری آن سخت میشود. بهتر است مسئولیت Model را آگاهانه تعیین کنیم.
مدل دیتابیس و مدل دامنه یکی نیستند
در ORM مدل معمولاً نمایش یک رکورد و رفتارهای مربوط به ذخیره آن است. در طراحی دامنه ممکن است آبجکتهای مستقل از دیتابیس داشته باشیم. یکسان فرض کردن این دو گاهی باعث وابستگی منطق تجاری به ORM میشود.