বিভিন্ন ধরণের গাড়ি হ'ল এমন একটি সাধারণ সমস্যার উদাহরণ যা ডেটা মডেলিংয়ে বারবার উপচে পড়ে। একে ইআর মডেলিংয়ে "জেনারালাইজেশন / স্পেশালাইজেশন" এবং অবজেক্ট মডেলিংয়ে "সুপারক্লাস / সাবক্লাস" বলা হয়।
কোনও বস্তু মডেলার সমস্যাটি সহজেই সমাধান করতে অবজেক্ট মডেলটিতে নির্মিত উত্তরাধিকার বৈশিষ্ট্যগুলি ব্যবহার করে। সাবক্লাসগুলি কেবল সুপারক্লাসটি প্রসারিত করে।
আপেক্ষিক মডেলর একটি সমস্যার মুখোমুখি। টেবিলগুলি কীভাবে ডিজাইন করবেন যাতে উত্তরাধিকার থেকে যে উপকারগুলি পাওয়া যায় তা অনুকরণ করতে পারে?
সবচেয়ে সহজ কৌশলটিকে একক টেবিলের উত্তরাধিকার বলা হয় । সমস্ত ধরণের গাড়ি সম্পর্কিত ডেটা গাড়ির একক টেবিলের মধ্যে বিভক্ত করা হয়। একটি কলাম, কার_ টাইপ রয়েছে যা একটি একক ধরণের সমস্ত গাড়ি একসাথে ভাগ করে দেয়। কোনও গাড়ি একাধিক ধরণের হতে পারে না। একটি কলাম অপ্রাসঙ্গিক তাহলে, বলে, বৈদ্যুতিক গাড়ি, এটা ছেড়ে দেওয়া হবে শূন্য সারি যে বৈদ্যুতিক গাড়ি অধিকারে থাকা হবে।
এই সহজ সমাধানটি ছোট এবং সাধারণ ক্ষেত্রে ভাল কাজ করে। প্রচুর NULL এর উপস্থিতি স্টোরেজ ওভারহেডে একটি সামান্য বিট যোগ করে এবং ওভারহেড পুনরুদ্ধার করতে কিছুটা। বুলিয়ান পরীক্ষা নালামযোগ্য কলামগুলিতে করা হলে বিকাশকারীকে এসকিউএল ত্রি-মূল্যবান যুক্তি শিখতে হতে পারে । এটি প্রথমে চমকে উঠতে পারে তবে এটির সাথে অভ্যস্ত হয়ে যায়।
ক্লাস টেবিলের উত্তরাধিকার নামে আরও একটি কৌশল রয়েছে । এই নকশায় গ্যাস_কার, ইলেকট্রিক_কার এবং হাইব্রিড_কারের জন্য আলাদা আলাদা টেবিল রয়েছে, তাদের সবার জন্য একটি সংযুক্ত টেবিল, গাড়ি ছাড়াও। আপনি যখন নির্দিষ্ট ধরণের গাড়ি সম্পর্কে সমস্ত তথ্য চান, আপনি উপযুক্ত বিশেষায়িত টেবিলের সাথে গাড়ির টেবিলে যোগ দিন। এই নকশায় কম NUL রয়েছে, তবে আপনি আরও যোগদান করতে। এই কৌশলটি বৃহত্তর এবং আরও জটিল ক্ষেত্রে আরও ভাল কাজ করে।
একটি তৃতীয় কৌশল রয়েছে যা ভাগ করে নেওয়া প্রাথমিক কী বলে। ক্লাস টেবিলের উত্তরাধিকারের সাথে একযোগে এই কৌশলটি ব্যবহৃত হয়। সাবক্লাসগুলির জন্য বিশেষায়িত টেবিলগুলিতে, তাদের প্রাথমিক কী হিসাবে, গাড়ির টেবিলে সংশ্লিষ্ট প্রবেশের প্রাথমিক কীটির একটি অনুলিপি রয়েছে। এই আইডি কলামটি প্রাথমিক কী এবং বিদেশী কী উভয় হিসাবে ঘোষিত হতে পারে।
এতে নতুন গাড়ি যুক্ত করার সময় কিছুটা অতিরিক্ত প্রোগ্রামিং জড়িত থাকে, তবে এটি যোগদান করে সহজ, সহজ এবং দ্রুত।
আসল বিশ্বে সুপারক্লাস এবং সাবক্লাসগুলি সর্বদা ঘটে। ভয় পাবেন না। পারফরম্যান্সের জন্য আপনার প্রাথমিক নকশা পরীক্ষা করুন। যদি আপনার প্রথম প্রচেষ্টাটি সহজ এবং সাবলীল হয়, আপনি এটির গতি বাড়ানোর জন্য এটি টুইট করতে সক্ষম হবেন।