সক্রিয় রেকর্ড (Active Record) এবং এর উপাদান
সক্রিয় রেকর্ড (Active Record) হল একটি ডিজাইন প্যাটার্ন যা অবজেক্ট-রিলেশনাল ম্যাপিং (ORM) এর একটি রূপ। এটি ডেটাবেসে রেকর্ডের জন্য একটি ক্লাস তৈরি করে এবং সেই ক্লাসের মাধ্যমে ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশন পরিচালনা করতে দেয়। সক্রিয় রেকর্ড প্যাটার্নটি Ruby on Rails ফ্রেমওয়ার্কের জন্য খুবই জনপ্রিয়, কিন্তু এটি অন্যান্য ভাষাতেও ব্যবহার করা হয়।
সক্রিয় রেকর্ডের প্রধান উপাদান
মডেল:
- প্রতিটি ডেটাবেস টেবিলের জন্য একটি মডেল ক্লাস তৈরি করা হয়। এই ক্লাসটি টেবিলের একটি রেকর্ডকে উপস্থাপন করে এবং সংশ্লিষ্ট তথ্য এবং আচরণ ধারণ করে।
ডেটাবেস টেবিল:
- মডেল ক্লাসটি একটি নির্দিষ্ট ডেটাবেস টেবিলের সাথে যুক্ত হয়। উদাহরণস্বরূপ, একটি
Userক্লাসusersটেবিলের সাথে সম্পর্কিত হতে পারে।
অ্যাট্রিবিউটস:
- মডেল ক্লাসের মধ্যে টেবিলের কলামগুলির জন্য অ্যাট্রিবিউটগুলি সংজ্ঞায়িত করা হয়। এই অ্যাট্রিবিউটগুলি সাধারণত প্রপার্টির মতো কাজ করে, যা ডেটাবেসের রেকর্ডের মান ধারণ করে।
CRUD অপারেশন:
- সক্রিয় রেকর্ড প্যাটার্নে CRUD অপারেশনগুলি সহজে পরিচালিত হয়। উদাহরণস্বরূপ:
create: নতুন রেকর্ড তৈরি করা।read: রেকর্ডগুলি পড়া।update: বিদ্যমান রেকর্ড আপডেট করা।delete: রেকর্ড মুছে ফেলা।
অ্যাসোসিয়েশন:
- সক্রিয় রেকর্ড ব্যবহার করে বিভিন্ন মডেলগুলির মধ্যে সম্পর্ক স্থাপন করা যায়। উদাহরণস্বরূপ, একটি
Postমডেল একটিUserমডেলের সাথেbelongs_toসম্পর্ক থাকতে পারে।
ভ্যালিডেশন:
- মডেল ক্লাসের মধ্যে ডেটার ভ্যালিডেশন যুক্ত করা যায়, যাতে নিশ্চিত হয় যে ডেটাবেসে সঠিক তথ্য সংরক্ষিত হচ্ছে।
স্কোপ:
- মডেলের জন্য স্কোপগুলি ব্যবহার করে কাস্টম কুয়েরি তৈরি করা যায়, যা নির্দিষ্ট শর্তাবলীর ভিত্তিতে ফলাফল ফেরত দেয়।
উদাহরণ
ধরি, আমরা একটি User মডেল তৈরি করছি। এখানে কিছু উদাহরণ দেওয়া হলো:
class User < ActiveRecord::Base
# Attributes: name, email
validates :name, presence: true
validates :email, presence: true, uniqueness: true
# Example of a class method (scope)
scope :active_users, -> { where(active: true) }
end
এখানে, User মডেলটি users টেবিলের সাথে সম্পর্কিত। এটি name এবং email অ্যাট্রিবিউটগুলি ধারণ করে এবং ডেটার ভ্যালিডেশন সম্পন্ন করে।
উপসংহার
সক্রিয় রেকর্ড একটি শক্তিশালী ডিজাইন প্যাটার্ন যা ডেটাবেসের সাথে কাজ করার প্রক্রিয়াকে সহজ এবং কার্যকর করে তোলে। এটি মডেলিং, ডেটার ভ্যালিডেশন, এবং CRUD অপারেশনগুলির জন্য একটি স্বচ্ছ এবং সংহত পদ্ধতি প্রদান করে। এই প্যাটার্নটি ডেভেলপারদের জন্য দ্রুত ডেটাবেস অ্যাপ্লিকেশন তৈরি করতে সহায়ক।
Read more