Active Record হলো Ruby on Rails এর একটি গুরুত্বপূর্ণ উপাদান যা Object-Relational Mapping (ORM) প্যাটার্নের অংশ। এটি ডেটাবেসে ডেটার সাথে যোগাযোগ করার জন্য একটি সহজ এবং কার্যকরী উপায় প্রদান করে। Active Record ডেটাবেসের টেবিলগুলোকে Ruby অবজেক্টের রূপে উপস্থাপন করে, ফলে ডেটাবেসের সাথে কাজ করার জন্য SQL লিখতে হয় না, বরং Ruby কোডের মাধ্যমে ডেটা পরিচালনা করা যায়।
Active Record কী?
Active Record হল Rails ফ্রেমওয়ার্কে ব্যবহৃত ORM (Object-Relational Mapping) যা ডেটাবেস টেবিল এবং Ruby ক্লাসের মধ্যে একটি সংযোগ তৈরি করে। এটি ডেটাবেসের টেবিলগুলিকে Ruby ক্লাসের অবজেক্ট হিসেবে মান্য করে এবং SQL কোডের পরিবর্তে Ruby কোড ব্যবহার করে ডেটাবেসে তথ্য সংরক্ষণ, পুনরুদ্ধার, আপডেট এবং মুছে ফেলতে সহায়তা করে।
Active Record এর মূল সুবিধা:
- ডেটাবেস এবং Ruby ক্লাসের মধ্যে সম্পর্ক সহজ করা।
- SQL কোড লেখার প্রয়োজনীয়তা কমিয়ে দেওয়া।
- ডেটাবেস অপারেশনগুলিকে Ruby কোডের মাধ্যমে সহজ এবং আরও পাঠযোগ্য করা।
Active Record এর ব্যবহার
Active Record এ কাজ করার জন্য Rails ফ্রেমওয়ার্ক স্বয়ংক্রিয়ভাবে কিছু মেথড প্রদান করে যা ডেটাবেস অপারেশন পরিচালনা করতে ব্যবহৃত হয়। এটি Model ক্লাসের মাধ্যমে কাজ করে, যা ডেটাবেস টেবিলের রূপে কাজ করে।
উদাহরণস্বরূপ:
ধরা যাক, আমাদের একটি User মডেল রয়েছে, যা একটি users টেবিলের সঙ্গে সম্পর্কিত। এই টেবিলটি ব্যবহারকারীদের তথ্য সংরক্ষণ করে।
1. মডেল তৈরি করা
Rails-এ একটি মডেল তৈরি করতে, আমরা সাধারণত rails generate model কমান্ড ব্যবহার করি। যেমন:
rails generate model User name:string email:string
এটি একটি User মডেল তৈরি করবে এবং ডেটাবেসে users টেবিলের জন্য মাইগ্রেশন ফাইল তৈরি করবে।
2. মডেল ক্লাস
Rails স্বয়ংক্রিয়ভাবে তৈরি করা User মডেল ক্লাসে Active Record ফিচার যুক্ত করে। উদাহরণ:
class User < ApplicationRecord
# এখানে মডেল সম্পর্কিত লজিক থাকবে
end
এখানে ApplicationRecord হচ্ছে একটি বেস ক্লাস, যা Rails এর Active Record মডেল থেকে উত্তরাধিকারসূত্রে পাওয়া যায়।
Active Record এর প্রধান অপারেশনসমূহ
1. ডেটা ইনসার্ট (Create)
নতুন রেকর্ড তৈরি করতে create মেথড ব্যবহার করা হয়:
user = User.create(name: "John Doe", email: "john@example.com")
এটি users টেবিলে একটি নতুন রেকর্ড ইনসার্ট করবে এবং user অবজেক্টে সেই রেকর্ডটি সংরক্ষণ করবে।
2. ডেটা পুনরুদ্ধার (Read)
ডেটাবেস থেকে ডেটা পুনরুদ্ধার করতে find এবং where মেথড ব্যবহার করা হয়:
find: নির্দিষ্ট আইডি দ্বারা একটি রেকর্ড খুঁজে পাওয়া যায়।
user = User.find(1)where: কিছু শর্তে মিলে এমন এক বা একাধিক রেকর্ড খুঁজে পাওয়া যায়।
users = User.where(name: "John Doe")
3. ডেটা আপডেট (Update)
একটি বিদ্যমান রেকর্ড আপডেট করতে update মেথড ব্যবহার করা হয়:
user = User.find(1)
user.update(name: "John Smith")
4. ডেটা মুছে ফেলা (Delete)
একটি রেকর্ড মুছে ফেলার জন্য destroy বা delete মেথড ব্যবহার করা হয়:
destroy: এটি রেকর্ডটিকে ডাটাবেস থেকে স্থায়ীভাবে মুছে দেয়।
user = User.find(1) user.destroydelete: এটি রেকর্ডটি ডিলিট করে, কিন্তু যদি কোনো অ্যাসোসিয়েশন থাকে তবে তা পারসিস্ট করতে পারে।
user = User.find(1) user.delete
5. সমস্ত রেকর্ডে কাজ করা (All Records)
টেবিলের সব রেকর্ড পেতে all মেথড ব্যবহার করা হয়:
users = User.all
এটি users টেবিলের সমস্ত রেকর্ড নিয়ে আসবে।
Active Record Associations
Active Record শুধু ডেটা ম্যানিপুলেশনই করে না, বরং টেবিলগুলির মধ্যে সম্পর্ক বা অ্যাসোসিয়েশনও পরিচালনা করে। Rails-এ তিনটি প্রধান অ্যাসোসিয়েশন রয়েছে:
- has_many: একটি মডেল একাধিক রেকর্ডের সাথে সম্পর্কিত থাকে।
- belongs_to: একটি মডেল একটি অন্য মডেলের রেকর্ডের সাথে সম্পর্কিত থাকে।
- has_one: একটি মডেল একমাত্র একটি রেকর্ডের সাথে সম্পর্কিত থাকে।
উদাহরণ:
ধরা যাক, একটি Post মডেল এবং একটি Comment মডেল রয়েছে যেখানে Post-এর একাধিক Comment থাকতে পারে।
class Post < ApplicationRecord
has_many :comments
end
class Comment < ApplicationRecord
belongs_to :post
end
এটি posts টেবিল এবং comments টেবিলের মধ্যে একটি সম্পর্ক স্থাপন করবে, যেখানে একটি Post একাধিক Comment এর সাথে সম্পর্কিত থাকবে।
সারমর্ম
Active Record হলো Ruby on Rails এর ORM টুল যা ডেটাবেস অপারেশনকে Ruby কোডের মাধ্যমে সহজ এবং পরিষ্কার করে তোলে। এটি CRUD (Create, Read, Update, Delete) অপারেশনগুলো পরিচালনা করতে সহায়ক, এবং ডেটাবেসের টেবিলগুলির সাথে সম্পর্ক তৈরি করতে ব্যবহৃত হয়। Active Record-এর ব্যবহার ডেভেলপারদের SQL কোড লেখার প্রয়োজনীয়তা কমিয়ে দেয়, ফলে ডেটাবেস ম্যানিপুলেশন আরো কার্যকরী এবং দ্রুত হয়।
Read more