الگوی ثبت کنشور

در دانش رایانه، الگوی ثبت کُنشور (کُنِش‌وَر) یا Active record pattern الگوی طراحی‌ای است که معمولاً در نرم‌افزارهایی که از پایگاه‌های دادهٔ رابطه‌ای برای ذخیره داده‌های خود بهره می‌برند به کار می‌رود. نخستین بار این نام توسط مارتین فاولر در کتاب «الگوهای معماری کاربردی تجاری» یا Patterns of Enterprise Application Architecture به کار رفت.

ثبت کنشور روشی برای دستیابی داده‌ها از درون پایگاه داده است. یک جدول پایگاه داده یا نما توسط یک کلاس همپوشانی می‌شود، بنابراین یک نمونه از شی برای یک سطر یکتا در جدول گره می‌خورد. پس از ساخت یک شی، سطر جدیدی به جدول افزوده می‌شود. هر شی‌ای که بارگذاری می‌شود اطلاعات خود را از پایگاه‌داده می‌گیرد. هنگامی که شی‌ای به‌روز می‌شود، سطر متناظر آن جدول نیز به‌روز می‌شود. کلاس همپوشان متدها یا خواص دستیابی برای هر ستون در جدول را پیاده‌سازی می‌کند.
این الگو معمولاً توسط ابزارهای پایدار شی یا object persistence tools و در نگاشت رابطه‌ای شی یا object-relational mapping به‌کار می‌رود. معمولاً روابط کلید خارجی همچون نمونه شی‌ای که دارای نوع مناسب است توسط یک خاصیت نشان داده می‌شوند.
پیاده‌سازی ثبت کنشور را می‌توان در فریم‌ورک‌های گوناگون و محیط‌های برنامه‌نویسی بسیاری یافت. برای نمونه، اگر در یک پایگاه‌داده جدولی با نام parts با ستون‌های name (از نوع رشته‌ای) و price (از نوع صحیح) وجود داشته باشد. الگوی ثبت کُنشور در کلاسی با نام part پیاده‌سازی می‌شود. این پیاده‌سازی در شبه‌کد زیر چنین است:

 part = new Part()
 part.name = «Sample part"
 part.price = ۱۲۳٫۴۵
 part.save()

شبه‌کد بالا سطر جدیدی را در جدول parts با مقادیر داده شده می‌سازد و تقریباً معادل دستور SQL زیر است:
INSERT INTO `parts` (`name`, `price`) VALUES ('Sample part', 123.45);
همچنین، می‌توان از این الگو برای پرس‌وجو از پایگاه‌داده نیز سود برد.

 b = Part.find_first_part("name", "gearbox")

این شبه‌کد شی تازه‌ای با نام part می‌سازد که اولین سطر مطابقت شده‌ای که ستون name آن برابر gearbox باشد مقادیر این شی را تشکیل می‌دهند. دستور SQL معادل این شبه‌کد چنین است:
SELECT * FROM `parts` WHERE `name` = 'gearbox' LIMIT 1;

 جستارهای وابسته 
 ایجاد، خواندن، به‌روزرسانی و حذف

 پانویس 

رده:الگوهای طراحی نرم‌افزار
رده:الگوی معماری (علم رایانه)