Ruby on Rails-এ Associations ডেটাবেস টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করতে ব্যবহৃত হয়। Rails অ্যাপ্লিকেশনে বিভিন্ন ধরনের সম্পর্ক তৈরি করার জন্য বিভিন্ন ActiveRecord Associations মডেলগুলোর মধ্যে সংযোগ স্থাপন করে, যা ডেটা ম্যানিপুলেশনকে আরও সহজ এবং কার্যকরী করে তোলে। এই সম্পর্কগুলি সাধারণত তিন ধরনের হয়: has_many, belongs_to, এবং has_one।
has_many Association
has_many হলো একটি সম্পর্ক যেখানে একটি মডেল অন্য মডেলের একাধিক রেকর্ডের সাথে যুক্ত থাকে। এটি এক-থেকে-অনেক সম্পর্কের প্রতিনিধিত্ব করে। যেমন, একটি Author এর অনেক Book থাকতে পারে।
উদাহরণ:
ধরা যাক, Author মডেলের সাথে Book মডেলের সম্পর্ক স্থাপন করতে চাই:
class Author < ApplicationRecord
has_many :books
end
এখন, Book মডেলে সম্পর্কটি ডিফাইন করা হয়:
class Book < ApplicationRecord
belongs_to :author
end
এখানে, Author মডেলটি একাধিক Book মডেলকে সম্পর্কিত করেছে। আর Book মডেলটি নির্দিষ্ট একটি Author-এর সাথে সম্পর্কিত।
ব্যবহার:
author = Author.find(1)
author.books # সমস্ত বই যে লেখকের সাথে সম্পর্কিত
belongs_to Association
belongs_to হলো একটি সম্পর্ক যেখানে একটি মডেল অন্য মডেলের একক রেকর্ডের সাথে যুক্ত থাকে। এটি অনেক-থেকে-এক সম্পর্কের প্রতিনিধিত্ব করে। যেমন, একটি Book মডেল একটি নির্দিষ্ট Author এর সাথে সম্পর্কিত।
উদাহরণ:
যেমন পূর্বে Book মডেলে belongs_to :author সম্পর্ক স্থাপন করা হয়েছিল, এখানে তা আবার দেখানো হল:
class Book < ApplicationRecord
belongs_to :author
end
এখন, Author মডেলটি has_many :books দিয়ে একাধিক বইয়ের সাথে সম্পর্কিত হয়েছে।
ব্যবহার:
book = Book.find(1)
book.author # সেই বইয়ের লেখক
has_one Association
has_one হলো একটি সম্পর্ক যেখানে একটি মডেল আরেকটি মডেলের একক রেকর্ডের সাথে যুক্ত থাকে। এটি এক-থেকে-এক সম্পর্কের প্রতিনিধিত্ব করে। যেমন, একজন User এর একটি Profile থাকতে পারে।
উদাহরণ:
ধরা যাক, User মডেলের সাথে Profile মডেলের সম্পর্ক স্থাপন করতে চাই:
class User < ApplicationRecord
has_one :profile
end
এখন, Profile মডেলে সম্পর্কটি ডিফাইন করা হয়:
class Profile < ApplicationRecord
belongs_to :user
end
এখানে, User মডেলটি একটি Profile মডেলের সাথে সম্পর্কিত। আর Profile মডেলটি একটি নির্দিষ্ট User এর সাথে সম্পর্কিত।
ব্যবহার:
user = User.find(1)
user.profile # সেই ব্যবহারকারীর প্রোফাইল
ActiveRecord Associations এবং Foreign Keys
has_many এবং belongs_to সম্পর্কের মধ্যে একটি গুরুত্বপূর্ণ বিষয় হল foreign key। সাধারণত, belongs_to অ্যাসোসিয়েশন একটি টেবিলের মধ্যে foreign key তৈরি করে, যা সম্পর্কিত রেকর্ডের ID সনাক্ত করতে ব্যবহৃত হয়।
উদাহরণস্বরূপ, Book টেবিলের মধ্যে author_id কলাম থাকবে, যা Author টেবিলের ID কে রেফার করবে।
class Book < ApplicationRecord
belongs_to :author
end
এই ক্ষেত্রে, books টেবিলের মধ্যে author_id কলাম থাকবে।
অন্যান্য গুরুত্বপূর্ণ অ্যাসোসিয়েশন
Rails-এ আরও কিছু অ্যাসোসিয়েশন রয়েছে, যেমন has_and_belongs_to_many এবং has_many :through, যা many-to-many সম্পর্কের জন্য ব্যবহৃত হয়। তবে has_many, belongs_to, এবং has_one সবচেয়ে সাধারণ এবং সরল সম্পর্ক।
সারমর্ম
Ruby on Rails-এ has_many, belongs_to, এবং has_one অ্যাসোসিয়েশনগুলো ডেটাবেসের টেবিলগুলির মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। has_many একাধিক রেকর্ডের সাথে সম্পর্ক তৈরি করে, belongs_to একক রেকর্ডের সাথে সম্পর্ক তৈরি করে, এবং has_one একক রেকর্ডের সাথে এক-থেকে-এক সম্পর্ক তৈরি করে। এই সম্পর্কগুলি ডেটা ম্যানিপুলেশনকে আরও সহজ এবং কার্যকরী করে তোলে, এবং ডেটাবেসের কাঠামো পরিষ্কার ও ব্যবস্থাপনার জন্য সহায়ক হয়।
Read more