একটি আদর্শ বিশ্বের মডেলটিতে কেবল ব্যবসায়ের যুক্তি থাকতে হবে, এটি কিছু আসল বস্তুর যেমন হাউসকে মডেল করে। তবে প্রায় সব পরিস্থিতিতেই মডেলটির কিছু স্টোরেজে তার ডেটা বজায় রাখা দরকার।
মডেল এবং সঞ্চিত ডেটাগুলির মধ্যে মিথস্ক্রিয়া হয় একটি পৃথক ডেটা স্তরে বা সরাসরি মডেলে ঘটতে পারে, যা কোনও ওআরএম (অবজেক্ট রিলেশনাল ম্যাপার) ব্যবহার করার সময় ঘটে। অন্য কথায় হয় হয় মডেলটি সরাসরি ডাটাবেসের সাথে সংযুক্ত হয় বা এটি তার ডেটাটিকে কিছু অন্যান্য "ডেটা অ্যাক্সেস" অবজেক্টের সাথে পাস করে যা ডাটাবেসের সাথে সংযুক্ত থাকে।
একটি ওআরএম (অবজেক্ট রিলেশন ম্যাপার) ডাটাবেস টেবিলের ক্ষেত্রগুলিকে আপনার মডেল অবজেক্টের বৈশিষ্ট্যগুলিতে মানচিত্র তৈরি করে এবং সেটটার সরবরাহ করে। এই ক্ষেত্রে কোনও আলাদা ডেটা স্তর নেই এবং মডেলটি তার ডেটা ধরে রাখার জন্য সরাসরি দায়বদ্ধ directly
এখানে ActiveRecordএকটি জনপ্রিয় ওআরএম ব্যবহার করে একটি রুবির উদাহরণ দেওয়া হল :
class House < ActiveRecord::Base
end
house = House.new
house.price = 120000
house.save
Pricehousesটেবিলের এমন একটি ক্ষেত্র যা স্বয়ংক্রিয়ভাবে সনাক্ত করা যায় ActiveRecordযা বস্তুটিতে একটি গিটার এবং সেটটার যুক্ত করে। কখনsave মূল বৈশিষ্ট্যের মান বলা হয় তখন ডাটাবেসে স্থির থাকে।
আমার দৃষ্টিকোণ থেকে ডেটা লেয়ার থাকার প্রবাদটি হ'ল আপনি এমন একটি পয়েন্ট পাবেন যাতে আপনি মডেলটিতে পৌঁছানোর আগেই ডেটা ম্যানিপুলেট করতে পারেন, মডেলটির এটি নিয়ে কম উদ্বেগ রয়েছে, এর কম দায়িত্ব রয়েছে। উদাহরণস্বরূপ, আপনাকে বেশ কয়েকটি নয় কোনও সামঞ্জস্যপূর্ণ ডেটা উত্স থেকে ডেটা একত্রিত করার প্রয়োজন হতে পারে, এটি এমন একটি বিষয় যা কোনও ওআরএম সহজেই হ্যান্ডেল করতে পারে না।
মূল কনটি পরিচালনা করার জন্য এটি বিমূর্ততার আরেকটি স্তর, যদি আপনার এটির প্রয়োজন না হয়, বিরক্ত করবেন না, সহজ রাখুন। কম চলন্ত অংশ, ভুল হতে কম।
I'm not using the database as a simple object store। আমি অনুমান করছি যে সঞ্চিত পদ্ধতি আকারে ডাটাবেসে কিছু ব্যবসায়িক যুক্তি। তত্ত্বের ক্ষেত্রে যা এমভিসির বিপরীতে যায় তবে বাস্তবে এটি কোনও বিষয় নয়।