در دانش رایانه، الگوی ثبت کُنشور (کُنِش‌وَر) یا 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;

```

جستارهای وابسته
---------------

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

پانویس
------

1. ↑  Fowler, Martin (2003). *Patterns of enterprise application architecture*. Addison-Wesley. ISBN 978-0-321-12742-6.

| * ن
* ب
* و
الگوهای طراحی |
| --- |
| الگوهای طراحی GO4 | 

|  |  |
| --- | --- |
| ایجاد | 
* الگوی کارخانه انتزاعی
* الگوی سازنده
* الگوی متد کارخانه شیء
* الگوی نمونه اولیه
* الگوی یگانه

 |
| ساختاری | 
* آداپتور
* پل
* کامپوزیت
* آذینگر
* نما
* مگس وزن
* وکالت

 |
| رفتاری | 
* زنجیره مسئولیت
* الگوی فرمان
* مفسر
* الگوی تکرار
* میانجی
* یادگاری
* ناظر
* وضعیت
* استراتژی
* متد الگو
* بازدیدگر

 |

 |
| Concurrencypatterns | 
* Active object
* Balking
* Binding properties
* Double-checked locking
* Event-based asynchronous
* Guarded suspension
* Join
* قفل
* مانیتور
* Proactor
* Reactor
* Read write lock
* زمان‌بندی
* الگوی مخزن نخ
* Thread-local storage

 |
| الگوهایمعماری | 
* Front controller
* مفسر
* مدل-نما-کنترل‌گر
* ADR
* Entity-component-system
* چندلایه
* Specification
* Publish–subscribe
* اشیای لخت
* Service locator
* ثبت کنشور
* Identity map
* شی دسترسی به داده
* شی انتقال داده
* وارونگی کنترل
* Model 2

 |
| دیگرالگوها | 
* Blackboard
* Business delegate
* Composite entity
* تزریق نیازمندی
* Intercepting filter
* بارگیری تنبلانه
* شیء ساختگی
* Null object
* استخر اشیاء
* Servant
* Twin
* Type tunnel
* Method chaining

 |
| کتاب‌ها | 
* *الگوهای طراحی*
* *Enterprise Integration Patterns*
* *Patterns of Enterprise Application Architecture*
* *Analysis patterns*

 |
| افراد | 
* کریستوفر الکساندر
* Erich Gamma
* Ralph Johnson
* John Vlissides
* گریدی بوچ
* کنت بک
* وارد کانینگهام
* مارتین فولر
* رابرت سسیل مارتین
* Jim Coplien
* Douglas Schmidt
* Linda Rising

 |
| جوامع | 
* The Hillside Group
* The Portland Pattern Repository

 |